2011-07-20 9 views
40

私はApacheを実行しているLinuxホストとIISを実行しているWindowsホストを持っています。私はLinuxホストを指し、IISへの要求を(プロキシで)要求する必要があるドメインを持っています。したがって、私は以下の仮想ホスト定義をApacheに持っています。(これはうまくいきます)SSLによるプロキシ

<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内部サーバーエラーメッセージが表示されます、しかし、十分です。エラーログでのぞき見を示しています

[水7月20日8時35分34秒2011] [エラー] [クライアント76.168.166.70] SSLプロキシ www.wileybits.com:80のために要求されたが、有効になっていません[ヒント: SSLProxyEngine] [水7月20日8時35分34秒2011] [エラー]プロキシ:HTTPS: は(win.acme.com)74.166.186.70:443のSSLサポートを有効にするために失敗した

通知を行いますプロキシ要求が間違ったドメイン(wileybits)のように見える...それが示すドメインも私のApacheサーバーによってホストされていますが、なぜそれがacme.comのログに表示されるのかわかりません(DNS逆引き参照おそらく?)

いずれにしても、何が欠けていますか?

事前のおかげで -

P.S.をekkis

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

正常に動作するようですが、もちろん、Windowsのホスト名は次のようになります。ホスト名とアドレスは

*更新*

と:)無実を保護するために変更されました

:私はまた、(代わりのmod_rewriteの)試み

私のシナリオでは許容されない、目に見えます210

同じエラー

+0

は、なぜ私はこのためのマイナスポイントを取得したのですか? – ekkis

答えて

78

は明らかに私はこれを行うことができます...それを考え出しました!

[ソリューションは3cx.orgにmikeg's postingから来た]

+8

これを後で見つける人のために:私の問題は 'SSLProxyEngine on'を含んでいませんでした。それは '.htaccess'ファイルに入れることはできません。 – robbrit

+2

また、 'sudo a2enmod headers proxy ssl cache' を追加してSSLEngineを追加する必要があります(そうでなければ、エラーが発生しました)。[エラー] oops、 'www.somedomain.com:0'のRSAまたはDSAサーバー証明書が見つかりませんでしたか?')とSSLCertificateFile/SSLCertificateKeyFileと同じキー&証明書 – bumpmann

+8

これを見て、混乱するかもしれない人たちのために:'フロントエンドのHttps'は[Microsoftアプリケーションの独自のフラグです](http://en.wikipedia.org/ wiki/List_of_HTTP_header_fields)、他のサービスへのプロキシ時に設定する必要はありません。 –

0

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

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

とそれだけで正常に動作します:

関連する問題