HTTPSをフォワード可能なフォワードプロキシをapacheで簡単につくる
社内からインターネットに繋げるときにプロキシを通らないといけない場合がありますよね?
あのプロキシをフォワードプロキシと呼ぶのですが
開発中にそのフォワードプロキシを自前で立てて検証しなければならないことがあったので、その時のメモです。
なお、Apache以外にもSquidやNginxもフォワードプロキシとして動作させることができますが
squidは情報があまり出てこず、NginxはHTTPS通信するのにソースからビルドが必要だったので
最も簡単だと判断したapacheの手順になってます。
検証した環境
- CentOS 7.6
- apache 2.4.6
- SELinuxやFirewalldはOFFの状態
1. apacheのインストール
apacheと必要なパッケージをyumでインストールします。
$ sudo yum install httpd httpd-devel mod_ssl
2. 設定ファイルを作成する
/etc/httpd/conf.d/proxy.confを新規作成して、内容を以下にします。
Listen 3128
<IfModule proxy_module>
ProxyRequests On
ProxyVia On
ProxyTimeout 300
AllowCONNECT 443
CustomLog logs/proxy_log combined
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
</IfModule>
Listen部分は空いている好きなポート番号を指定し、Allowは必要に応じて、アクセス元の制限をしてください
3. apacheの起動と自動起動設定
$ sudo systemctl start httpd.service
$ sudo systemctl enable httpd
ここまで設定すればHTTPSもフォワード可能なプロキシサーバの出来上がりです。
別のサーバからプロキシサーバとして利用してみる
$ export http_proxy=http://172.16.4.4:3128
$ export https_proxy=http://172.16.4.4:3128
$ curl https://www.google.com
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang・・・中略
無事つながりました!
172.16.4.4は今回立てたプロキシサーバのプライベートIPアドレス
3128は手順2で設定したポート番号ですので、試す場合は読み替えてください。