SSL通信時にプロキシのトンネリングでエラーになる場合の対処
プロキシサーバを通して、wget,curlなどでSSLでアクセスする際、プロキシサーバのトンネリングでSSLを通せずエラーになる。
[hogehoge@hogehoge ~]$ wget --no-check-certificate -e HTTPS_PROXY=proxy.com:8080 "https://info.finance.yahoo.co.jp/fx/convert/?a=1&s=JPY&t=USD" --2018-02-23 17:10:44-- https://info.finance.yahoo.co.jp/fx/convert/?a=1&s=JPY&t=USD proxy.com をDNSに問いあわせています... 192.168.0.100 proxy.com|192.168.0.100|:8080 に接続しています... 接続しました。 プロクシのトンネリングに失敗しました: Internal Server ErrorSSL による接続が確立 できません。 [hogehoge@hogehoge ~]$
Apacheのサイトによると、以下モジュールが必要。
Apache モジュール mod_proxy_connect
http://web.archive.org/web/20140119065146/http://httpd.apache.org:80/docs/2.2/ja/mod/mod_proxy_connect.htmlhttp://web.archive.org/web/20140119065146/http://httpd.apache.org:80/docs/2.2/ja/mod/mod_proxy_connect.html
本モジュールには mod_proxy が必要です。 CONNECT HTTP メソッドをサポートします。 このメソッドは主にプロキシに SSL リクエストを通す (訳注: SSLトンネリング)に使われます。
つまり、SSLリクエストでプロキシを通す場合は、以下のモジュールをconfに設定する必要がある。
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so
以下、設定と確認手順。
■プロキシサーバのhttpd.confの編集してmod_proxy_connect.soを読み込むようにする。
[root@proxy ~]# cd /home/webs/proxy/conf/ [root@proxy conf]# cp httpd.conf httpd.conf.bk [root@proxy conf]# vi httpd.conf [root@proxy conf]# diff httpd.conf httpd.conf.bk 5,6d4 < LoadModule proxy_module modules/mod_proxy.so < LoadModule proxy_connect_module modules/mod_proxy_connect.so <
■構文チェック
[root@proxy conf]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@proxy conf]#
■再起動して設定を反映する。
[root@proxy conf]# /etc/init.d/httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ]
■正常にSSL通信ができるようになった。
[hogehoge@hogehoge ~]$ wget --no-check-certificate -e HTTPS_PROXY=proxy.com:8080 "https://info.finance.yahoo.co.jp/fx/convert/?a=1&s=JPY&t=USD" --2018-02-26 09:55:12-- https://info.finance.yahoo.co.jp/fx/convert/?a=1&s=JPY&t=USD proxy.com をDNSに問いあわせています... 192.168.0.100 proxy.com|192.168.0.100|:8080 に接続しています... 接続しました。 Proxy による接続要求を送信しました、応答を待っています... 200 OK 長さ: 特定できません [text/html] `index.html?a=1&s=JPY&t=USD' に保存中 [ <=> ] 48,550 --.-K/s 時間 0.01s 2018-02-26 09:55:12 (3.18 MB/s) - `index.html?a=1&s=JPY&t=USD' へ保存終了 [48550]
以上。