HTTPS接続に外部プロキシを使用するようにApacheを構成する


6

私はApacheにHTTPSリクエストに外部プロキシを使用させようとしています:

Listen 80
Listen 443
..
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
..
SSLProxyEngine On
SSLProxyVerify none
SSLCACertificateFile conf/cert/curl-ca-bundle.cert

ProxyRemote http://*.externaldomain.com:80 http://external.proxy.com:8585
ProxyRemote http://*.externaldomain.com:443 https://external.proxy.com:8585
ProxyPass    /sub      https://sub.externaldomain.com/

ただし、http:// localhost / sub / somethingのリクエスト は503を返し、次のようになります。

[Fri Apr 15 17:38:15 2011] [error] (OS 10060)A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.  : proxy: HTTPS: attempt to connect to 11.11.11.111:443 (sub.domain.com) failed

おかしい

curl -x 11.11.11.111:8585 https://sub.externaldomain.com/something

動作します。

Apacheでhttpsリクエストに外部プロキシを使用するにはどうすればよいですか?


助けにはなりませんが、質問のタイプミスに注意してください。443を使用するProxyremoteルールでは、プロトコルとして「https」を指定する必要があります。「http」の使用が意図的なものだとは想像できません。
-djangofan

回答:


1

取得するエラーは、構成の最後の行が原因です

 ProxyPass    /sub      https://sub.externaldomain.com/

これは、Apacheに/ subからsub.externaldomain.com:443へのパス要求をプロキシするように指示します。これは、実際にエラーメッセージに表示されるものです。

これで、セットアップが欠落しています

 ProxyRequests On 

これは、ProxyRemoteがオンの場合にのみ機能し、ユーザーエージェント(ブラウザ)がプロキシとしてapacheサーバーを使用するように設定されているためです。あなたは次のようなことをしたいという私の理解ですか?

  • 1-すべてのトラフィックを、設定したリモートプロキシを介して/ subにプロキシしますが、ローカルのApacheサーバーをProxyPassとして使用しませんか?!-その場合、最後の行を削除します

  • 2-リソース/ subがローカルにあり、実際にはリクエストがリモートサーバーに送られていることを、Apacheサーバーに実行させたいですか?!-その場合は、適切なポートで最後の行だけを構成し、このディレクティブも使用する必要があります

ProxyPassReverse /sub https://sub.externaldomain.com/ # here configure the right port as you can see 443 is not working


私は何をしたい書き換えることではlocalhost /サブ/何かするsub.externaldomain.com/something~~Vを、私は私が使用する必要が企業ネットワークにいるexternal.proxy.com:8585を。するRewriteRule ^ /サブ/(.*) sub.externaldomain.com/$1 [P]はProxyPass /サブ sub.externaldomain.comが正常に動作するが、唯一のHTTPまたはコーポレート外部。通信網。
トマレック

書き換えルールはProxyPassと同じタイプのプロキシを実行しますが、唯一の違いは、実際に決定するか、特定の基準を持っていることです。あなたが持っている最終的な構成を投稿できますか?
-silviud

0

私はついにそれを機能させました:)問題は(RTFM)にありました

「matchは、リモートサーバーがサポートするURLスキームの名前、またはリモートサーバーを使用する部分的なURL、またはすべての要求についてサーバーに接続する必要があることを示す*です。リモートサーバーは部分的なURLです。リモートサーバー用。」

そのため、解決は簡単で、ProxyRemoteMatch代わりに使用します:

ProxyRemoteMatch externaldomain\.com http://external.proxy.com:8585
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.