いくつかのバックエンドサーバーのプロキシとしてApache2を使用しています。プロキシはすべてのサーバーのLet´s-Encrypt-SSL-Certificatesを保持し、http-trafficはhttpsにリダイレクトされてから、http-backend-serversにプロキシされます。
すべてがスムーズに実行されていますが、次のようになります。
バックエンドサーバーの1つがMoodle-Installationを保持しています。すべてのリンクはhttp-urlを指しているので、ブラウザは安全でないコンテンツがあると言います...
バックエンドからプロキシ経由でクライアントに配信されるページコンテンツを操作するにはどうすればよいですか?すべてのリンク「 http://my.doimain.com/」を「 https:// my」に置き換える必要があります配信されたページ内の.domain.com / ".. ..
プロキシとバックエンドセラー間のトラフィックはhttpsではなくhttpです。これらのサーバーにはインターネットアクセスがないため、let´sencryptによって発行された証明書を更新することはできません...
よろしくお願いします
2つの可能なアプローチ:
バックエンドサーバーに証明書をインストールしてhttpsをサポートできるようにしてから、HTTPSバックエンドで実行するようにWebアプリケーションを再構成して、それ自体を参照するときにhttpsリンクを生成するようにします。
デフォルトではmod_proxy_httpが証明書をチェックしないため、有効な証明書は必要なく、バックエンドサーバー上の自己署名証明書を使用できます( SSLProxyVerify
)
Webアプリケーションが生成するHTMLページを書き換え、http://www.example.com
の出現箇所を mod_proxy_html および ProxyHTMLURLMap
ディレクティブ で書き換えることができます。基本的な例は次のとおりです。
ProxyHTMLURLMap http://internal2.example.com https://www.example.com
HBruijnに感謝します、あなたは私を正しい方向に向けました。
ここ これを機能させるために必要なすべてです...
VirtualHost内で-SSL設定の後にファイルを追加します。
<VirtualHost *:443>
...
...
ProxyPass / http://backend-server/
ProxyPreserveHost On
SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyHTMLExtended Off
ProxyHTMLInterp On
ProxyHTMLDoctype XHTML Legacy
ProxyPassReverse / http://backend-server/
ProxyHTMLURLMap http://external.server.address https://external.server.address
</VirtualHost>