証明書にルート CA への信頼された証明書パスが複数ある場合、証明書の検証が失敗する

この記事では、ルート CA への信頼された証明書パスが複数ある場合に、Web サイトが提示したセキュリティ証明書が発行されない問題の回避策を説明します。

適用対象: Windows 7、Windows Server 1、Windows Server 2012 R2
元の KB 番号: 2831004

現象

ユーザーがセキュリティで保護された Web サイトにアクセスしようとすると、ユーザーは Web ブラウザーで次の警告メッセージを受け取ります。

この Web サイトのセキュリティ証明書には問題があります。

この Web サイトで提示されたセキュリティ証明書は、信頼された証明機関から発行されたものではありません。

ユーザーが [この Web サイトへの続行 (推奨されません)] をクリックすると、ユーザーはセキュリティで保護された Web サイトにアクセスできます。

原因

この問題は、Web サーバー上の Web サイト証明書に信頼された証明書パスが複数あるために発生します。

たとえば、ご利用のクライアント コンピューターがルート認証局 (CA) 証明書 (2) を信頼しているとします。 Web サーバーは、ルート CA 証明書 (1)ルート CA 証明書 (2) を信頼しているとします。 さらに、証明書には、Web サーバー上の信頼されたルート CA への次の 2 つの証明書パスがあるとします。

  1. 証明書パス 1: Web サイト証明書 - 中間 CA 証明書 - ルート CA 証明書 (1)
  2. 証明書パス 2: Web サイト証明書 - 中間 CA 証明書 - クロス ルート CA 証明書 - ルート CA 証明書 (2)

コンピューターが証明書検証プロセス中に信頼された証明書パスを複数見つけると、Microsoft CryptoAPI は各チェーンのスコアを計算して最適な証明書パスを選択します。 スコアは、証明書パスが提供できる情報の品質と量に基づいて計算されます。 複数の証明書パスのスコアが同じ場合は、最短のチェーンが選択されます。

認定パス 1 と認定パス 2 の品質スコアが同じ場合、CryptoAPI は短いパス (認定パス 1) を選択し、パスをクライアントに送信します。 いっぽう、クライアント コンピューターが証明書を確認できるのは、ルート CA 証明書 (2) にリンクする長い証明書パスを使用してのみです。 そのため、証明書の検証は失敗します。

回避策

この問題を回避するには、次の手順に従って、使用しない証明書パスの証明書を削除または無効にします。

  1. システム管理者としてデバイスにログオンします。

  2. 次の手順に従って、証明書スナップインを Microsoft Management Console に追加します。

    1. [スタート] > [実行] をクリックし、「mmc」と入力して Enter キーを押します。
    2. [ファイル] メニューの [スナップインの追加と削除] をクリックします。
    3. [証明書] を選択して [追加] をクリックし、[コンピューター アカウント] を選択して [次へ] をクリックします。
    4. [ローカル コンピューター (このコンソールを実行しているコンピューター)] を選択して、[完了] をクリックします。
    5. [OK] をクリックします。
  3. 管理コンソールで [証明書 (ローカル コンピューター)] を展開し、使用しない証明書パスの証明書を見つけます。

    注:

    証明書がルート CA 証明書の場合は、[信頼されたルート認証局] に含まれています。 証明書が中間 CA 証明書の場合は、[中間認証局] に含まれています。

  4. 証明書を削除または無効にするには、次のいずれかの方法を使用します。

    • 証明書を削除するには、証明書を右クリックし、[削除] をクリックします。
    • 証明書を無効にするには、証明書を右クリックし、[プロパティ] をクリックして [この証明書のすべての目的を無効にする] を選択し、[OK] をクリックします。
  5. 問題がまだ発生している場合は、サーバーを再起動します。

さらに、サーバー上で [ルート証明書を自動更新しない] グループ ポリシー設定が無効になっているか、設定されていない場合は、次回チェーンビルドが発生したときに、使用しない証明書パスの証明書が有効化またはインストールされる可能性があります。 グループ ポリシー設定を変更するには、次の手順を実行します。

  1. [スタート] > [実行] をクリックし、「gpedit.msc」と入力して Enter キーを押します。

  2. [コンピューター構成] > [管理用テンプレート] > [システム] > [インターネット通信管理] を展開し、[インターネット通信の設定] をクリックします。

  3. [ルート証明書を自動更新しない] をダブルクリックし、[有効] を選択して [OK] をクリックします。

  4. ローカル グループ ポリシー エディターを修了します。

状態

この動作は仕様です。