ブラウザが Squid の HTTPS ブロックページを表示しないことがある理由
拒否された CONNECT リクエストに対して返されるカスタム HTML ではなく、ブラウザ自身のトンネルエラーが表示される理由を理解します。
プロキシのカスタムブロックページは HTTP サイトでは表示されます。HTTPS サイトでは、ブラウザは代わりにトンネルエラーを表示します。HTML テンプレートを再度置き換えても何も変わらないことがあります。
明示的 HTTP プロキシでは、HTTPS へのアクセスは通常 CONNECT で始まります。ブラウザはプロキシにホストとポートへのトンネルを開くよう要求します。Squid がその要求を拒否すると、サイトの TLS セッションは決して開始されません。
拒否には HTTP ステータスと応答内容が含まれることがあります。ブラウザのエラーページとは別に、その失敗した CONNECT 応答を curl で検査できます。そのためには、ブラウザが提供された HTML を宛先のウェブページとして表示する必要はありません。ブラウザは CONNECT エラーの本体を破棄し、独自のプロキシエラー画面を使うことがあります。正確な表示はクライアントによって異なります。
Squid の拒否にすでに意図した deny_info 本体が含まれている場合、そのテキスト、スタイルシート、ファイル権限を編集しても、ブラウザが扱う応答段階は変わりません。CONNECT が拒否されたかどうかとその理由を確認できるよう、拒否ステータスとアクセスログを利用可能にしておいてください。一般的なブラウザのページはポリシーの詳細を隠すことがありますが、プロキシは規則を正しく適用しています。
傍受された HTTPS 接続の内部でブロックページを提供するのは別のアーキテクチャであり、TLS 終端、クライアントの信頼、証明書の扱いが関わります。それは deny_info を編集して有効になるものではなく、カスタムテンプレートはブロックされたサイトになりすます権限を何も与えません。必要がある場合にのみその設計を選び、そうでなければクライアントで利用できるエラー報告とプロキシの運用ログを使用してください。