url_rewrite_program はリクエスト URL の判断を担当します。リクエストの情報を受け取り、Squid のヘルパープロトコルで応答します。ダウンロード済みのファイルを受け取って編集し返すことはありません。

望む操作関係する境界
ブラウザをリダイレクトする、または別のリクエスト URL を選ぶリクエスト段階における URL リライタヘルパーの役割
可視の HTTP レスポンス本文を変更するレスポンス適応の仕組み。たとえば 設定済みの ICAP レスポンス変更
通常の CONNECT の内側で HTTP を読むまず宛先の TLS を適切な配備構成のもとで終端する必要がある
アプリケーションが暗号化したファイルを復号するファイルの形式・アルゴリズム・鍵であり、転送方法とは無関係

最後の二行は混同しやすいところです。HTTPS で運ばれる通常のファイルは TLS で保護されます。アプリケーションが暗号化したファイルは、HTTPS を終端した後でも暗号化されたまま残りえます。適応インターフェースを選んでも、アプリケーションの鍵も復号アルゴリズムも得られません。

通常の CONNECT は暗号化されたトンネルのバイトを中継します。URL ヘルパーは内側のレスポンスを公開しません。検査を必要とする設計は、その通信を配備内で復号できるか、また復号すべきかを明確にしなければなりません。

Squid が HTTP メッセージを検査できる場合でも、レスポンス変更サービスは内容の符号化、変更された長さ、失敗時の振る舞いを引き続き担います。変換を定義したうえでインターフェースを選び、動作する URL リライトの例を、決して受け取らない処理段階へ拡張しないでください。

関連記事