2009年12月2日水曜日

Vista/7 の Cryptographic Services とプロキシサーバ

Windows Vista や 7 の Internet Explorer で HTTPS のサイトを閲覧したときに、証明書の検証に失敗することがある。

発生条件は以下の通り。
  • ポート 80 のインターネット接続にプロキシサーバが必要なネットワークであること
  • プロキシ設定を手動などログオンユーザーのみにしかしていないこと
  • サイトの証明書の上位チェーンが、デフォルトで Windows が持っていないものであること
原因は、Cryptographic Services がルート証明書をオンデマンドで取りに行くようになったが、これは Network Service のアカウントで動作するので…ということらしい。

Windows 7 での Cryptographic Services の説明
提供される管理サービスは、次の 4 つです。カタログ データベース サービス: Windows ファイルの署名を確認し、新しいプログラムをインストールできるようにします。保護ルート サービス: 信頼されたルート証明機関の証明書をこのコンピューターで追加および削除します。ルート証明書自動更新サービス: Windows Update からルート証明書を取得し、SSL のようなシナリオを有効にします。キー サービス: 証明書用にこのコンピューターを登録します。このサービスが停止している場合は、これらの管理サービスは正常に機能しません。このサービスが無効の場合は、明示的にこれに依存しているサービスは開始できません。
XP だとルート証明書の更新は Windows Update 経由なので、この問題は起きない。もちろんほかのブラウザでも問題なし。

解決方法は、WPAD を使うとか、グループポリシーでプロキシ設定をコンピュータごとにするとか。

0 件のコメント:

コメントを投稿