Squid 6.13でTLSフォワードプロキシを待ち受ける
Squid 6.13にTLS対応のフォワードプロキシリスナーを追加し、接続先のHTTPSセッションは中間で復号せずに保ちます。
GnuTLSまたはOpenSSLを使ってビルドされたSquid 6.13は、TLSでフォワードプロキシのリクエストを受け付けられます。これはクライアントとプロキシの間を保護するもので、HTTPS接続先の独立したセッションには介入しません。
- クライアントがSquidへの接続に使うホスト名の証明書を取得してください。秘密鍵へのアクセスは、必要なサービスの実行主体に限定します。
- 割り当てられたアドレスと実際の証明書パスを使ってTLSリスナーを追加します。
https_port 192.0.2.10:3129 tls-cert=/etc/squid/proxy-chain.pem tls-key=/etc/squid/proxy-key.pemクライアントの許可リストと接続先の制限、認証方針は維持してください。リスナーの追加でアクセス権が与えられるわけではありません。既存のhttp_portも動作し続けます。すべてのクライアント接続にTLSが必要なら、古いリスナーを削除または制限します。アクセラレーター、インターセプト、証明書生成のモードは不要です。
対象サービスを再読み込みする前に設定をパースしてください。パーサーの検査で確かめられるのは構造と証明書の読み込みで、ネットワークの到達性ではありません。再読み込みに成功したら、許可されたクライアントからTLSエンドポイント経由でリクエストします。
curl --proxy https://proxy.example:3129 --proxy-cacert approved-proxy-ca.pem --connect-timeout 5 --max-time 15 https://example.com/実際のプロキシホスト名と承認済みCAファイルを使ってください。公的に信頼されるプロキシ証明書なら、独自バンドルが不要な場合もあります。--proxy-cacertはプロキシの信頼設定を行い、接続先の検証は別に保ちます。両方の検査を残してください。
実際のリスナーと証明書の名前を調べ、制御下にある拒否されるべき送信元からもテストします。パースの成功だけでは、クライアントの信頼やアクセス制限の境界は確認できません。