web-dev-qa-db-ja.com

SSL対応のWebページがクライアント証明書の入力を求めない

概要:SSLが有効になっている2つの異なるWindows Server + II6環境があります。一方が私たちが望むように動作し、もう一方が動作しない場合。

サーバー構成

  • Windows Server 2003 SP2
  • IIS 6
  • ページはSSLクライアント認証用に構成されています。

詳細:CACを有効にするためにSSLクライアント認証を必要とするページがいくつかあるVM 6Webサイトをホストするように構成された本番IISがあります。この本番環境では、VMページにサーバー証明書が表示され、クライアント証明書の入力を求める前に終了します。サーバーの構成をテストするために、これらのCACページと同じ構成で「HelloWorld」ページを作成しましたが、同じ結果が得られました。次に、このページを取得して、同じOS/IISバージョンで動作する既知のVMに配置し、同じ方法でページを構成しました。クライアント証明書の入力を求めてからページをロードすることにより、ページは正しく動作します。

この問題を解決するために行った手順

  • 両方のマシンで証明書パスの整合性を確認しました
  • 2つのVM間でIISメタベースを比較して、不整合をチェックしました
  • 壊れたVMに新しいサーバー証明書を作成してインストールしました
  • オプションを「クライアント証明書を受け入れる」ではなく「クライアント証明書を要求する」に変更しました
  • IISログでエラーを確認しました。すべてのアクセスは200として戻ってきます。

問題を修正するオプションを見つけましたが、新しい問題が発生します。すべてのページのクライアント証明書をネゴシエートするオプションがあります。これにより、証明書プロンプトが表示されますが、すべてのページでこれが行われるため、SSLセッションの目的が無効になります。

また重要:この壊れたVMは、政府の仕様に従ってスティグされています。これが根本的な原因である可能性があります。ただし、STIGを解除する可能性は私たちの管理下にはありません。したがって、現在の制限に対処する必要があります。

4
Sai

マイクロソフトのサポートを受けて3週間後、解決策を見つけました。次のレジストリ値を変更します。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\DisableRenegoOnServerが有効になりました。値を0に設定すると、プロンプトが返されます。

Microsoft KBの記事は次のとおりです。 http://support.Microsoft.com/kb/977377

症状はKB記事に記載されていますが、このKB記事の主題はこの問題ではありません。

"インターネットインフォメーションサービス(IIS):特定の構成では、IIS証明書マッピングシナリオを含む、証明書クライアント認証の使用が影響を受けます。サイト全体のクライアント証明書認証は影響を受けず、引き続き関数。"

4
Sai