web-dev-qa-db-ja.com

HTTPSのカスタムエラーページ(deny_info)

「/ usr/share/squid/errors/English」にあるERR_TJSと呼ばれるカスタムの「エラーページ」ファイルを使用して、squid.confに次のACLがあります。

acl tjs_sites url_regex "/etc/squid/sites_regex.acl"
acl tjs_domains dstdomain "/etc/squid/domains.acl"
http_access deny tjs_sites
http_access deny tjs_domains
deny_info ERR_TJS tjs_sites
deny_info ERR_TJS tjs_domains

特にACLファイル "/etc/squid/domains.acl"の場合、次のドメインがあります。

flyordie.com
www.flyordie.com
king.com
www.king.com
miniclip.com
www.miniclip.com
kongregate.com
www.kongregate.com
clashroyale.com
www.clashroyale.com
facebook.com
www.facebook.com
instagram.com
www.instagram.com
snapchat.com
www.snapchat.com

問題は、たとえば「 https://www.facebook.com 」のカスタムエラーページを表示する代わりに、Squidに対してHTTPSリクエストが実行されると、送信された一般的なエラーページが表示されることです。ブラウザで、Mozilla Firefoxの次のように:

プロキシサーバーが接続を拒否しています

Firefoxは、接続を拒否するプロキシサーバーを使用するように設定されています。

プロキシ設定をチェックして、それらが正しいことを確認してください。ネットワーク管理者に連絡して、プロキシサーバーが機能していることを確認してください。

この情報はSquidのドキュメントで見つかりました。

HTTPSで表示されないカスタムエラーページ

HTTPSはHTTP CONNECTメッセージを使用して、プロキシ経由で中継します。ブラウザの動作がこれらのCONNECTメッセージを処理するため( https://bugzilla.mozilla.org/show_bug.cgi?id=47988 で説明)、プロキシによって生成されたカスタムエラーページはすべて無視され、汎用ブラウザ代わりに表示されるページ。

通常、このブラウザページには、接続障害やその他の無関係な詳細が記載されています。

実際、200 OK以外の応答はブラウザによって完全にドロップされ、同じブラウザテンプレートページが表示されます。これは、認証済みプロキシを介してHTTPSを使用する場合や、407メッセージ本文に関連性がある認証スキームの場合に、非常に奇妙な認証問題を引き起こす可能性があります。

Squidを使用すると、これらのCONNECTメッセージの処理など、HTTP/HTTPS接続からいくつかの「状態」を傍受できると聞きました。

私の質問は次のとおりです:カスタムdeny_infoを適用する方法はありますか?これは私がHTTPSリクエストのために持っているもので、おそらくこれらのCONNECTメッセージを操作しているのでしょうか、それとも他の方法でやっているのでしょうか?そして、どうすればこれを達成できますか(いくつかの例を挙げてください)?

1
ivanleoncz

ブラウザーがHTTPSのプロキシーを使用するように構成されている場合、ブラウザーはまず、プロキシーを介してリモート・サイトへのCONNECTトンネルを確立しようとします。 「200 Tunnel Ready」以外のプロキシからのHTTP応答はすべて無視され、「Proxy refusing connection」エラーが発生します。これは、最初に接続を復号化し、次に構成に従って接続を拒否することで修正できます。これについて詳しく説明している https://docs.diladele.com/faq/squid/cannot_connect_to_site_using_https.html の記事をご覧ください。

1
Rafael