証明書サービスで暗号化キー向けに指定されたプロバイダーを使用できませんでした。
Active Directory 証明書サービス (AD CS) では、 キーのアーカイブをサポートするため、キー回復証明書、Exchange (XCHG) 証明書、およびキーが必要となります。Key Recovery Agent 証明書の機能、XCHG 証明書、およびそれらの作成に必要な暗号化サービス プロバイダー (CSP) は、公開キー基盤にとって非常に重要です。
キーの回復やリカバリをサポートしている暗号化サービス プロバイダーの使用
暗号化プロバイダーや、暗号化および暗号化証明書の生成関連タスクを実行するソフトウェア コンポーネントが原因の問題を解決する際、管理ツールを使用できない場合があります。ただし、以下のタスクを実行することで、解決プロセスに役立つ診断情報が判明する可能性があります。
暗号化プロバイダーを特定し、テストします。
問題が解決せず、Microsoft 以外のプロバイダーを使用している場合は、ベンダーに連絡してトラブルシューティングに関する情報を尋ねます。
また、デフォルトの暗号化キー プロバイダーをリセットすることもできますが、その場合は新しいプロバイダーに基づいた新しい証明書が発行できるよう、現在の CA Exchange 証明書を失効させる必要があります。
問題が解決せず、Microsoft プロバイダーを使用している場合は、Microsoft カスタマー サービス & サポートにお問い合わせください。
暗号化プロバイダーの特定とテスト
この手順を実行するには、CA 管理権限を付与されているか、または適切な権限を委任されている必要があります。
使用中の暗号化プロバイダーを特定およびテストするには、次の手順を実行します。
コマンド プロンプト ウィンドウを開きます。
「certutil -getreg ca\EncryptionCSP」と入力し、Enter キーを押します。
「certutil -csp <providername> -csptest」と入力し、Enter キーを押します。プロバイダー名を手順 2 の出力で識別されるプロバイダーに置き換えます。
Microsoft 以外の暗号化プロバイダーを使用している場合は、ベンダーにお問い合わせください。それ以外の場合は、Microsoft カスタマー サービス & サポートにお問い合わせください。
デフォルトの暗号化キー プロバイダーをリセットする
この手順を実行するには、ローカルの Administrators のメンバーであるか、適切な権限を委任されている必要があります。
次のレジストリ キーを Microsoft Software Key Storage Provider に設定すると、証明機関 (CA) で暗号化証明書にデフォルトの Microsoft プロバイダーを使用するように構成することができます。
注:CA Exchange 証明書がある場合は、新しいプロバイダーに基づいて新しい証明書を発行できるよう、現在の CA Exchange 証明書を失効させる必要があることがあります。その後、CA を再起動します。
構成済みの暗号化キー プロバイダーを変更するには、次の手順を実行します。
注意:レジストリを誤って編集すると、システムに重大な障害をもたらす可能性があります。レジストリを変更する前に、重要なデータのバックアップを作成するようにしてください。
CA をホストしているコンピューター上で、[スタート] をクリックし、「regedit」と入力してから、Enter キーを押します。
HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\CA Name\EncryptionCSP\Provider を開きます。
Microsoft Software Key Storage Provider の値を変更します。
証明機関スナップインを開きます。
コンソール ツリーで、[発行した証明書] をクリックします。
[詳細] ペイン内で、[CA Exchange 証明書] を選択します。
[操作] メニュー上で、[すべてのタスク] をポイントし、[証明書の失効] をクリックします。
証明書を失効する理由を選択し、必要に応じて失効時期を調整して、[はい] をクリックします。
CA を再起動します。
キーのアーカイブおよび回復が正しく動作していることを確認するには、次の手順を実行します。
CA をホストしているコンピューター上で [スタート] をクリックし、[管理ツール] をポイントし、[証明機関] をクリックします。
コンソール ツリーで、承認期間 (CA) の名前を右クリックしてから、[プロパティ] をクリックします。
[回復エージェント] タブをクリックします。
Key Recovery Agent の証明書がすべて「有効」になっていることを確認します。
証明書テンプレート コンテナー内で、暗号化証明書に、[要求処理] タブ上で構成された [サブジェクトの秘密キーをアーカイブする] オプションがあることを確認します。
この証明書テンプレートに基づいて証明書に登録するためのアクセス許可を持つ、ユーザー アカウントの証明書スナップインを開きます。
コンソール ツリーで、[個人用] を右クリックし、[すべてのタスク] をポイントし、[新しい証明書の要求] をクリックして証明書の登録ウィザードを起動します。
暗号化テンプレートに基づいて証明書に登録し、登録が正常に完了し、エラーが報告されていないことを確認します。
登録が完了したら、[証明機関] スナップインを開きます。
コンソール ツリーで、[発行した証明書] をクリックします。
発行されたばかりの証明書のエントリを探し、スナップイン表示リストに「アーカイブされたキー」列を追加します。
先ほど発行した証明書の「アーカイブされたキー」列に表示された [はい] をクリックして確認します。
Target | Microsoft.Windows.CertificateServices.CARole.2016 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 86 | ||
Event Source | Microsoft-Windows-CertificationAuthority | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | High | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
WriteToCertSvcEvents | WriteAction | Microsoft.Windows.CertificateServices.CARole.CertSvcEvents.Publisher | Default |
WriteToDB | WriteAction | Microsoft.SystemCenter.CollectEvent | Default |
<Rule ID="Microsoft.Windows.CertificateServices.CARole.2016.CertSvcEvents.86" Enabled="true" Target="CSDisc!Microsoft.Windows.CertificateServices.CARole.2016" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">86</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-CertificationAuthority</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectEvent"/>
<WriteAction ID="WriteToCertSvcEvents" TypeID="Microsoft.Windows.CertificateServices.CARole.CertSvcEvents.Publisher"/>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="AlertMessageIDda66f694c2aa435dbbbc3e09e3585e3d"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>