Squid で SSL の URL を細かく制限・許可できない理由
プロキシサーバの squid には、ドメインや URL を指定してアクセス許可・拒否できるという記事を以前書きました。
この方法で、正規表現によりアクセス許可ができると書きましたが、これは SSL を使用する https://~ で始まるサイトにはうまくいきません。
たとえば正規表現でホワイトリストに次のように指定しても、アクセス許可されません。
# whitelist_regex ^http://example.com/hogehoge/
SSL のサイトは、URL の一部や正規表現での細かいアクセス制御はできず、ドメイン単位でしか設定できません。許可するにはホワイトリストで以下のように設定します。
# whitelist example.com:443
なぜ Squid は URL を細かく指定して SSL 通信を通すことができないのでしょうか。それは SSL 通信では、通信先の IP アドレスとポート番号は中継者からでも分かりますが、どの URL をリクエストとしているかといった情報は暗号化されているためです。
中間にいる Squid にとっては通信相手のサーバとポート番号までは取得できますが、どの URL にアクセスしようとしているか、どのようなファイルを取得しようとしているか、パラメータは何か、などの情報が分からないのです。ですからこの情報を利用してアクセス制御はできないのです。
これは SSL の原理的なことですので、squid 以外のプロキシサーバを利用したとしてもうまくいきません。実現したい場合は、squid でアクセス許可しておいて、クライアントのブラウザ側でアクセス拒否することでしょうか。
コメントはまだありません
No comments yet.
Sorry, the comment form is closed at this time.