43

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>

両方の Web サーバーに有効で信頼できる証明書があり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 の ssl サポートを有効にできませんでした (win.acme.com)

プロキシ リクエストが間違ったドメイン (wileybits) に対するものであるように見えることに注意してください...表示されるドメインは、私の Apache サーバーによってもホストされていますが、acme.com のログに表示される理由がわかりません (逆おそらくDNSルックアップ?)

いずれにせよ、私は何が欠けていますか?

前もって感謝します-ekkis

ps のホスト名とアドレスは、罪のない人を保護するために変更されています :)

* アップデート *

と:

RewriteRule ^/(.*) https://win.acme.com/$1 [R,L]

正常に動作しているように見えますが、もちろん、Windows のホスト名が表示されるようになり、これは私のシナリオでは受け入れられません。

私も試しました(mod_rewriteの代わりに):

ProxyRequests Off
ProxyPass / https://win.acme.com/

しかし、同じエラー

4

2 に答える 2

84

それを理解した...どうやら私はこれを行うことができます:

SSLProxyEngine On
RequestHeader set Front-End-Https "On"
ProxyPass / https://win.acme.com/
ProxyPassReverse / https://win.acme.com/
CacheDisable *

そしてそれはうまくいきます!

[解決策は、 3cx.org での mikeg の投稿から得られました]

于 2011-07-20T17:27:31.580 に答える
0

このエラーの原因は不明ですが、Squid または Varnish を使用してこれを達成することをお勧めします。以前は、安全な Windows IIS インスタンスを問題なくプロキシするために Squid を使用していました。

于 2011-07-20T17:08:30.547 に答える