Apacheを実行しているLinuxホストとIISを実行しているWindowsホストがあります。 Linuxホストを指すドメインがあり、それに対するリクエストをIISにリレー(プロキシ)する必要があります。したがって、Apacheには次の仮想ホスト定義があります(正常に機能します)。
<VirtualHost 192.168.0.2:80>
ServerName www.acme.com
DocumentRoot /var/www/acme.com
RewriteEngine On
RewriteOptions Inherit
RewriteRule ^/(.*) http://win.acme.com/$1 [P]
</VirtualHost>
次に、SSLサポートを追加します。定義は次のようになります。
<VirtualHost 192.168.0.2:443>
ServerName www.acme.com
DocumentRoot /var/www/acme.com
GnuTLSEnable On
GnuTLSPriorities NORMAL:%COMPAT
GnuTLSCertificateFile /var/www/ssl/www.acme.com.crt
GnuTLSKeyFile /var/www/ssl/www.acme.com.key
RewriteEngine On
RewriteOptions Inherit
RewriteRule ^/(.*) https://win.acme.com/$1 [P]
</VirtualHost>
両方のウェブサーバーに有効で信頼できる証明書があり、https://win.acme.com
しかし、私がhttps://www.acme.com
500内部サーバーエラーメッセージが表示されます。エラーログを見ると、次のことがわかります。
[2011年7月20日水曜日08:35:34] [エラー] [クライアント76.168.166.70] www.wileybits.com:80に対してSSLプロキシがリクエストされたが有効になっていない[ヒント:SSLProxyEngine] [2011年7月20日水曜日08:35:34] [エラー]プロキシ:HTTPS:74.166.186.70:443(win.acme.com)のSSLサポートを有効にできませんでした
プロキシリクエストが間違ったドメイン(wileybits)のものであるように見えることに注意してください...表示されるドメインもApacheサーバーによってホストされていますが、acme.comのログに表示される理由がわかりません(逆)おそらくDNSルックアップ?)
いずれにしても、私は何が欠けていますか?
事前に感謝-ekkis
追伸ホスト名とアドレスは、無実を保護するために変更されました:)
*更新*
で:
RewriteRule ^/(.*) https://win.acme.com/$1 [R,L]
それはうまくいくようですが、もちろん、Windowsのホスト名が見えるようになります。これは私のシナリオでは受け入れられません
私も試しました(mod_rewriteの代わりに):
ProxyRequests Off
ProxyPass / https://win.acme.com/
しかし、同じエラー
それを考え出した...明らかに私はこれを行うことができます:
SSLProxyEngine On
RequestHeader set Front-End-Https "On"
ProxyPass / https://win.acme.com/
ProxyPassReverse / https://win.acme.com/
CacheDisable *
そしてそれはうまく動作します!
[解決策は3cx.orgの mikegの投稿 ]
このエラーの原因は定かではありませんが、SquidまたはVarnishを使用してこれを達成してみてください。以前は、Squidを使用して安全なWindows IISインスタンスを問題なくプロキシしました。