この記事では、GPO を使用して配布される有効なルート CA 証明書が信頼されていないと表示される問題の回避策について説明します。
元の KB 番号: 4560600
現象
重要
信頼されていないルート証明機関 (CA) 証明書の問題は、PKI の構成に関する多数の問題が原因で発生する可能性があります。 この記事では、信頼されていないルート CA 証明書の考えられる原因の 1 つのみを示します。
証明書と公開キー基盤 (PKI) を使用するさまざまなアプリケーションでは、接続エラーなどの断続的な問題が 1 日あたり 1 回または 2 回発生する可能性があります。 これらの問題は、エンド エンティティ証明書の検証に失敗したために発生します。 影響を受けるアプリケーションは、異なる接続エラーを返す可能性がありますが、信頼されていないルート証明書エラーが共通して発生します。 このようなエラーの例を次に示します。
16 進値 | 10 進法 | シンボル | テキストのバージョン |
---|---|---|---|
0x800b0109 | -2146762487 | (CERT_E_UNTRUSTEDROOT) | 証明書チェーンは処理されましたが、ルート証明書で終了しました |
CryptoAPI システム アーキテクチャを使用する PKI 対応アプリケーションは、断続的な接続の損失や PKI/証明書依存機能の障害の影響を受ける可能性があります。 2020 年 4 月の時点で、この問題の影響を受けることがわかっているアプリケーションの一覧には次のものが含まれますが、これに限定される可能性はありません。
- Citrix
- リモート デスクトップ サービス (RDS)
- Skype
- Web ブラウザー
管理者は、 CAPI2 ログを調べることで、信頼されていないルート CA 証明書の問題を特定してトラブルシューティングできます。
次の署名を含む CAPI2 ログ内の Build Chain/Verify Chain Policy エラーに関するトラブルシューティング作業に重点を置きます。 例えば次が挙げられます。
エラー <DateTime> CAPI2 11 ビルド チェーン
エラー <DateTime> CAPI2 30 チェーン ポリシーの確認結果 証明書チェーンは処理されましたが、信頼プロバイダーによって信頼されていないルート証明書で終了しました。
[value] 800b0109
原因
ルート CA 証明書が次のグループ ポリシー (GP) を使用して配布されている場合、信頼されていないルート CA 証明書の問題が発生する可能性があります。
コンピューターの構成>Windows の設定>セキュリティ設定>パブリック キー ポリシー>信頼されたルート証明機関
根本原因の詳細
GPO を使用してルート CA 証明書を配布すると、 HKLM\SOFTWARE\Policies\Microsoft\SystemCertificates\Root\Certificates
の内容が削除され、再度書き込まれます。 この削除は、GP がレジストリの変更を適用する方法であるため、仕様に応じて行われます。
ルート CA 証明書用に予約されている Windows レジストリの領域を変更すると、クライアント アプリケーションの Crypto API コンポーネント に通知されます。 また、アプリケーションはレジストリの変更との同期を開始します。 同期は、アプリケーションが最新の状態に保たれ、有効なルート CA 証明書の最新の一覧を認識する方法です。
一部のシナリオでは、グループ ポリシーの処理に時間がかかります。 たとえば、多くのルート CA 証明書は GPO を介して配布されます (多くの Firewall または Applocker
ポリシーと同様)。 これらのシナリオでは、アプリケーションが信頼されたルート CA 証明書の完全な一覧を受け取らない場合があります。
このため、存在しないルート CA 証明書にチェーンするエンド エンティティ証明書は、信頼されていないものとしてレンダリングされます。 また、さまざまな証明書関連の問題が発生し始めます。 この問題は断続的であり、GPO の処理または再起動を再適用することで一時的に解決できます。
ルート CA 証明書が別の方法を使用して発行されている場合は、前述の状況により、問題が発生しない可能性があります。
回避策
Microsoft はこの問題を認識しており、今後のバージョンの Windows で証明書と Crypto API のエクスペリエンスを向上させるために取り組んでいます。
この問題に対処するには、GPO を使用してルート CA 証明書を配布しないようにします。 これには、ルート CA 証明書をクライアントに配信するためのレジストリの場所 ( HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\SystemCertificates\Root\Certificates
など) のターゲットが含まれる場合があります。
ルート CA 証明書を別の物理ルート CA 証明書ストアに格納する場合は、問題を解決する必要があります。
ルート CA 証明書を発行するための代替方法の例
方法 1: コマンド ライン ツール certutil
を使用し、ファイル rootca.cerに格納されている CA 証明書をルートします。
certutil -addstore root c:\tmp\rootca.cer
Note
このコマンドはローカル管理者のみが実行でき、1 台のコンピューターにのみ影響します。
方法 2: certlm.msc (ローカル コンピューターの証明書管理コンソール) を起動し、ルート CA 証明書を Registry 物理ストアにインポートします。
Note
certlm.msc コンソールは、ローカル管理者のみが起動できます。 また、インポートは 1 台のコンピューターにのみ影響します。
方法 3: GPO の基本設定を使用して、 グループ ポリシーの基本設定の説明に従ってルート CA 証明書を発行する
ルート CA 証明書を発行するには、次の手順に従います。
certutil -addstore root c:\tmp\rootca.cer
コマンドを使用して、コンピューターにルート証明書を手動でインポートします (方法 1 を参照)。ルート証明書をインポートしたマシンで GPMC.msc を開きます。
レジストリ設定の展開に使用する GPO を次のように編集します。
- ルート証明書への Windows 設定>レジストリ > パス>Computer 構成>グループ ポリシーの基本設定を編集します。
- 次のスクリーンショットに示すように、ルート証明書を GPO に追加します。
ルート証明書を発行する必要があるマシンに新しい GPO を展開します。
ルート CA 証明書を配布するその他の方法、ツール、またはクライアント管理ソリューションは、 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\ROOT\Certificates
が機能する場所にルート CA 証明書を書き込みます。