質問: 現状としては、squidをプロキシサーバとして通常動作させることはできました。 HTTP,HTTPSどちらも正常にプロキシサーバとして動作しています。 しかし、SSLクライアント認証をプロキシサーバで代理認証することができるのか調査しているのですが、 なかなかそういう記事を見つけることができず困っております。 ※調査力が足りないだけかもしれません。。 また設定方法などご存知のかたいらっしゃらないでしょうか。。 みなさまお忙しい所申し訳ありません、、 どうぞ、お力添えのほどよろしくおねがいいたします。
回答: 一般的に、https の場合、ブラウザ - Webサーバー間で SSL通信を行ない、プロキシはトンネルするだけです。 Squid - Webサーバー間でクライアント証明書を利用した SSL通信を行なうには、ブラウザ - Squid 間で一旦 SSL を終端(復号)し、Squid - Webサーバー間で別の SSL通信を行なう必要があります。 `ssl-bump` で調べると設定例が見つかると思います。 (参考) ### SSL復号 まず、ssl-bump で特定のサイト(例えば www.google.com など)のみ SSL復号するよう設定してみてください。 アクセスログを見て、他の https のサイトは **CONNECT** のみなのに対し、SSL復号対象サイトでは **CONNECT** の後に **GET** となっていれば OK です。 SSL復号の際、ブラウザから見えるサーバー証明書は Squid が自動生成したものです。 サーバー証明書を作成するための秘密鍵、証明書を ssl-bump のオプションに指定するのですが、この証明書が正規のものでないと、ブラウザ側では証明書発行元が確認できずエラーとなります。 正規の証明書(発行元がブラウザの認証局証明書に入っているもの)を使うか、Squid の証明書をブラウザの認証局証明書にインポートする必要があります。 ### クライアント証明書 SSL復号が確認できたら、次に、SSL復号対象サイトを実際のクライアント証明書認証を行なうサイトに変更し、`sslproxy_client_key`, `sslproxy_client_certificate` にクライアント秘密鍵、証明書(どちらも PEM 形式)を設定します。