IIS は、HTTP 403.7 または 403.16 エラーでクライアント証明書要求を拒否する可能性があります

この記事は、インターネット インフォメーション サービス (IIS) 8 が HTTP 403.7 または 403.16 エラーでクライアント証明書要求を拒否する可能性がある問題を解決するのに役立ちます。

元の製品バージョン:インターネット インフォメーション サービス
元の KB 番号: 2802568

現象

次のような状況を想定します。 SSL とクライアント証明書認証を使用するように構成されている IIS 8 Web アプリケーションがあります。 自己署名されていない証明書 (中間 CA 証明書など) を IIS サーバーのローカル コンピューター -->信頼されたルート証明機関証明書 ストアにインストールします。 その後、ユーザーが Web アプリケーションに HTTP 要求を送信し、クライアント証明書を使用して認証を試みると、次のいずれかのエラー メッセージが IIS サーバーによって応答として送信される可能性があります。

HTTP 403.16 - クライアント証明書が信頼されていないか無効です。

または

HTTP 403.7 - クライアント証明書が必要です。

原因

この問題の症状は、IIS サーバーでの証明書信頼リスト (CTL) の構成と使用によって異なる場合があります。

  • シナリオ 1 - HTTP 403.16 エラー

    IIS が CTL を使用するように構成されていない場合、SSL クライアント証明書認証は 403.16 エラー条件で失敗します。 このエラーは、SChannel.dll がクライアント証明書を信頼されていないと誤って判断したために発生します。

    注:

    CTL を使用しないのは、IIS 8.0 の既定の構成です。 これは、存在しない SendTrustedIssuerList か、 によって構成されます setting SendTrustedIssuerList=0

    このシナリオでは、IIS ログには通常、フィールドに 2148204809 の値が sc-win32-status 表示されます。 これにより、 として CERT_E_UNTRUSTEDROOT定義されているエラー コード 0x800b0109 に変換されます。

  • シナリオ 2 - HTTP 403.7 エラー

    CTL (SendTrustedIssuerList=1) を使用するように IIS を構成した場合、クライアント証明書の認証は 403.7 エラー条件で失敗します。 このエラーは、IIS によって送信された CTL にユーザーのクライアント証明書の信頼されたルート証明書が含まれていないため、インターネット エクスプローラーは、選択できる有効なクライアント証明書をユーザーに提示できないために発生します。

回避策

これらの問題を回避するには、IIS サーバー上のローカル コンピューターの>信頼されたルート証明機関証明書 ストアから自己署名証明書以外の証明書をアンインストールします。

詳細

この問題の根本原因は、「Lync Server 2013 Front-End サービスをWindows Server 2012で開始できない」で説明されている問題と同じです。

上記の記事で提供されている PowerShell スクリプトを使用して、 信頼されたルート証明機関 の証明書ストアにインストールされている自己署名証明書以外の証明書を検出することを検討できます。