web-dev-qa-db-ja.com

SSLを使用したApache ProxyPass

SSLサイトからのリクエストを非SSLサイト経由でプロキシしたい。私のApache httpd.confは次のようになります。

<VirtualHost 1.2.3.4:80>
    ServerName foo.com
    ProxyPass / https://bar.com/
</VirtualHost>

したがって、 http://foo.com にアクセスすると、Apacheが https://bar.com にリクエストを送信し、フェッチしたページを送信することを期待しています。

代わりに、500エラーが発生し、エラーログに次のように表示されます。

[error] proxy: HTTPS: failed to enable ssl support for 4.3.2.1:443 (bar.com)

おそらくここにディレクティブがありません。それはどちらでしょうか?

セキュリティへの影響を気にしないでください。私はリスクを完全に理解しています。

61
tylerl

あなたは必要になるでしょう mod_sslmod_proxyおよびオプションでmod_rewrite。ディストリビューションとApacheのバージョンによっては、mod_proxy_connectおよびmod_proxy_httpも読み込まれます。

SSLプロキシサポートを有効にするためのディレクティブはmod_sslにあります。

<VirtualHost 1.2.3.4:80>
    ServerName foo.com
    SSLProxyEngine On
    SSLProxyCheckPeerCN on
    SSLProxyCheckPeerExpire on
    ProxyPass / https://secure.bar.com
    ProxyPassReverse / https://secure.bar.com
</VirtualHost>

IIRCも使用できます。

    RewriteRule / https://secure.bar.com [P]    # don't forget to setup SSLProxy* as well
76
Sam Halicke

Apache 1.xでは、mod_sslはProxyPassを修正します。ありますか mod_sslインストールされていますか?

2
Jim Zajkowski