プロキシのカスタムブロックページは HTTP サイトでは表示されます。HTTPS サイトでは、ブラウザは代わりにトンネルエラーを表示します。HTML テンプレートを再度置き換えても何も変わらないことがあります。

明示的 HTTP プロキシでは、HTTPS へのアクセスは通常 CONNECT で始まります。ブラウザはプロキシにホストとポートへのトンネルを開くよう要求します。Squid がその要求を拒否すると、サイトの TLS セッションは決して開始されません。

拒否には HTTP ステータスと応答内容が含まれることがあります。ブラウザのエラーページとは別に、その失敗した CONNECT 応答を curl で検査できます。そのためには、ブラウザが提供された HTML を宛先のウェブページとして表示する必要はありません。ブラウザは CONNECT エラーの本体を破棄し、独自のプロキシエラー画面を使うことがあります。正確な表示はクライアントによって異なります。

Squid の拒否にすでに意図した deny_info 本体が含まれている場合、そのテキスト、スタイルシート、ファイル権限を編集しても、ブラウザが扱う応答段階は変わりません。CONNECT が拒否されたかどうかとその理由を確認できるよう、拒否ステータスとアクセスログを利用可能にしておいてください。一般的なブラウザのページはポリシーの詳細を隠すことがありますが、プロキシは規則を正しく適用しています。

傍受された HTTPS 接続の内部でブロックページを提供するのは別のアーキテクチャであり、TLS 終端、クライアントの信頼、証明書の扱いが関わります。それは deny_info を編集して有効になるものではなく、カスタムテンプレートはブロックされたサイトになりすます権限を何も与えません。必要がある場合にのみその設計を選び、そうでなければクライアントで利用できるエラー報告とプロキシの運用ログを使用してください。

関連記事