証明書サービスでクロス証明書を作成できませんでした。
ルート証明機関 (CA) 証明書が更新された場合、元のルート証明書および更新済みルート証明書の両方が公開キー階層内で引き続き重要です。元のルート CA 証明書は階層の信頼の根本的な基盤を維持し、元の階層の下で発行されたすべての証明書の証明書チェーンの検証に役立ちます。更新したルート CA 証明書により、更新日以降、階層で発行されたすべての証明書に対して信頼の基盤が築かれます。
これらのシナリオをサポートするには、クロス CA 証明書のペアを作成し、元のルート証明書と更新済みルート証明書との信頼関係を確立することもできます:
最初のクロス証明書は、元のルート CA 証明書が 更新された CA 証明書を信頼することを確認します。
2 番目のクロス証明書は、更新済み CA 証明書が元のルート証明書を信頼することを確認します。
スタンドアロン CA では、CA キーが変更された際に自己署名クロス証明書を生成します。クロス証明書は、各ルート証明書の有効期間が重なる期間のキー移行それぞれに対して生成されます。
.
ルート証明機関 (CA) 証明書が新しいキーで更新されると、元の CA 証明書と新しい CA 証明書とのクロス証明書を CA が自動的に生成します。クロス証明書の署名時に暗号化エラーが発生した場合は、拡張子の競合を修正すると問題を解決できることがあります。それ以外の場合は、CryptoAPI 2.0の診断機能を有効にし、他のトラブルシューティング情報を収集します。
これらの手順を実行するには、CA 管理権限を付与されているか、または適切な権限を委任されている必要があります。
拡張子の競合の解決
拡張子の競合を解決するには:
[スタート] をクリックし、「mmc」と入力して Enter キーを押します。
[ユーザー アカウント制御] ダイアログ ボックスが表示されたら、表示された操作が正しいことを確認し、[続行] をクリックします。
[ファイル] メニュー上で、[スナップインの追加と削除] をクリックし、[証明書] をクリックしてから、[追加] をクリックします。
[コンピューター アカウント] をクリックしてから、[次へ] をクリックします。
CA をホストしているコンピューターを選択し、[完了] をクリックしてから、[OK] をクリックします。
[詳細] タブをクリックし、[Show: Extensions only] (表示: 拡張子のみ) をクリックします。
Double-click the previous CA certificate, and view the configured extensions for this certificate.
最新の CA 証明書の拡張子と以前の CA 証明書の拡張子を比較します。
証明書要求を再構成し、新しい証明書要求を送信することで、拡張子間の不一致を修正します。
注:カスタム証明書要求の設定については、『Advanced Certificate Enrollment and Management( http://go.microsoft.com/fwlink/?LinkID=74577)』を参照してください。
CryptoAPI 2.0 の診断機能の有効化
CryptoAPI 2.0 の診断機能を有効にするには:
CA をホストしているコンピューター上で [スタート] をクリックし、[管理ツール] をポイントして [イベント ビューアー] をクリックします。
コンソール ツリーで、[イベント ビューアー]、[アプリケーションとサービス ログ]、[Microsoft]、[Windows]、[CAPI2] を展開します。
[操作] を右クリックし、[ログの有効化] をクリックします。
[スタート] ボタンをクリックし、[管理ツール] をポイントして [サービス] をクリックします。
[Active Directory 証明書サービス] を右クリックし、[再起動] をクリックします。
CA 証明書の検証またはチェーンのエラーを検索します。エラーを解決してから、CA を再起動します。
拡張子を修正し、CA 証明書の検証およびチェーンを修正すると、不足しているクロス CA 証明書が CA の再起動時に自動的に生成されます。
証明機関 (CA) でクロス証明書を作成し、CA 証明書の更新時に自己証明書を認証できることを確認するには:
CA をホストしているコンピューター上で [スタート] をクリックし、[管理ツール] をポイントし、[証明機関] をクリックします。
コンソール ツリー内で、CA の名前をクリックします。
[操作] メニュー上で、[すべてのタスク] をポイントし、[CA 証明書の書き換え] をクリックし、証明書の書き換えウィザードを開始します。
コンピューター上で、証明書スナップインを開いて、CA 証明書をダブルクリックします。
Click the Details tab, and click Show: Extensions only.
以前の CA 証明書をダブルクリックし、この証明書に構成された拡張子を表示します。
最新の CA 証明書の拡張子と以前の CA 証明書の拡張子を比較して、一致していることを確認します。
Target | Microsoft.Windows.CertificateServices.CARole.2016 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 102 | ||
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.102" 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">102</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="AlertMessageID45e4d639a5ed47f4b4f4ae5914594727"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>