DockerでSSL有効なSquidプロキシサーバを作る


VPSをプロキシサーバとして利用すると,アクセス元IPアドレスの書き換え,通信内容のキャッシュ,通信の暗号化などに役立ちます.本記事では,SquidキャッシュサーバとクライアントPC間の通信をSSLで暗号化するサーバをDockerで構築します.Dockerfileはこちらで公開しています.

squid-proxy-image

VPSを準備する

ConoHaさくらのクラウドなど,お好みのサービスを利用してVPSを準備します.当サイトはConoHaで運用しています.最終的には,ユーザとVPS間の通信が暗号化され,そこから先はHTTPでつながります.

SSL証明書を用意する

クライアントPCとキャッシュサーバ間の通信はHTTPSで暗号化します.そのため,暗号化に使う鍵とSSL証明書が必要です.自分しか使わない場合は自己証明書でも良いですが,他のユーザと共有する場合はSSL証明書を取得しておくと良いです.無料で証明書を発行するならStartSSLLet’s Encryptなどが利用できるようです.当サイトの証明書はRapidSSLで年間10ドル程度です.

Dockerをインストールする

VPSに入れたLinuxディストリビューションに合わせてDockerをインストールします.Dockerの公式サイトにLinuxディストリビューションごとのインストール手順がまとまっています.

Squidサーバをデプロイする

まずはDockerfileを取得します.

Squidにアクセスを許可するユーザを追加します.

htdigestコマンドが見つからない場合はインストールします.

次に,暗号化に使う鍵とSSL証明書を配置します.

コンテナイメージを作成して実行します.ポート番号はお好みで変更してください.下の例ではVPSの8080番ポートへのアクセスをSquidに転送しています.

docker psコマンドでコンテナの起動を確認します.

ファイアウォールの設定

外部からSquidへのアクセスを許可します.

ブラウザの設定を行う

Windowsの方はインターネットオプションから,Macの方はシステム環境設定のネットワークから,それぞれプロキシの設定を行います.Chromeをお使いの方はSwitchyOmegaというプラグインが便利です.

通信内容が暗号化されているか確認

以下はWiresharkを使って通信内容を確認したスクリーンショットです.プロキシを介したアクセスが暗号化されています.

Selection_413

広告欄

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です