失効を確認できません
チェーンまたはパスの検証は、エンドエンティティ (ユーザーまたはコンピューター) 証明書による処理であり、すべての証明機関 (CA) 証明書は、証明書チェーンが信頼済みの自己署名証明書で終了するまで階層的に処理されます。通常、これはルート CA 証明書です。Active Directory 証明書サービス (AD CS) のスタートアップは、可用性、有効性、CA 証明書チェーンの検証に問題がある場合に失敗することがあります。
有効な CA 証明書およびチェーンの読み込みと確認
証明書チェーンの検証を行うために、有効な証明機関 (CA) 証明書にアクセスできることを確認する必要があります。次のことを確認することで、有効な CA 証明書の検索に関する問題を解決できます。
有効な CA 証明書が、CA をホストしているコンピューター上で利用できる。
有効な CA 証明書が AIA コンテナー内に存在している。
CA 証明書チェーンを検証できる。
チェーン内の CA 向けの証明書失効リスト (CRL) の期限が切れている場合は、新しい CRL が生成されます。
これらの手順を実行するには、CA 管理権限を付与されているか、または適切な権限を委任されている必要があります。
有効な CA 証明書が、CA をホストしているコンピューター上に存在していることを確認
有効な CA 証明書が、CA をホストしているコンピューター上で利用できることを確認するには:
[スタート] をクリックし、「mmc」と入力して Enter キーを押します。
[ユーザー アカウント制御] ダイアログ ボックスが表示されたら、表示された操作が正しいことを確認し、[続行] をクリックします。
[ファイル] メニュー上で、[スナップインの追加と削除] をクリックし、[証明書] をクリックしてから、[追加] をクリックします。
[コンピューター アカウント] をクリックし、[次へ] をクリックします。
[完了] をクリックしてから、[OK] をクリックします。
コンソール ツリー内で、[証明書 (ローカル コンピューター)] をクリックしてから、[個人用] をクリックします。
有効期限内の CA 証明書がこのストアに存在していることを確認します。
有効な CA 証明書が AIA コンテナー内に存在していることを確認する
有効な CA 証明書が AIA コンテナー内に存在していることを確認するには:
[スタート] ボタンをクリックし、[管理ツール] をポイントし、[Active Directory サイトとサービス] をクリックします。
Active Directory サイトとサービスの [ドメイン名] をクリックします。
[表示] メニュー上で、[サービス ノードの表示] をクリックします。
[Services] をダブルクリックし、[Public Key Services] (公開キー サービス) をダブルクリックし、[AIA] をクリックします。
有効期限内の CA 証明書が AIA コンテナー内に存在していることを確認します。
CA 証明書チェーンの検証
CA 証明書チェーンを検証するには:
コマンド プロンプト ウィンドウを開きます。
CA 証明書で「certutil -urlfetch -verify」と入力し、ENTER キーを押します。
AIA コンテナーおよび CRL 配布ポイントのネットワークの場所が利用できること、チェーン内のすべての証明書が有効で失効していないこと、および有効な CRL が利用できることを確認します。
AIA または CRL の配布ポイントの場所が利用できない場合は、アクセスを阻止している問題を特定し、解決します。
チェーン内の証明書のいずれかが期限切れ、または失効している場合は、その証明書を更新します。CA 証明書を再発行する必要がある場合は、チェーン内のこの証明書の下にあるすべての証明書を再発行する必要があります。
チェーン内の CA の CRL の期限が切れている場合は、この CA の新しい CRL および Delta CRL を生成し、必要な場所にコピーします。
CA がオフラインの場合には、CA を再起動します。
CRL の確認および公開
新しい CRL を確認し、必要に応じて公開するには:
問題の原因となっている CA で現在公開されている CRL を確認します。この CRL は既定で %windir%\System32\CertSrv\CertEnroll フォルダーに作成されます。
現在この場所にある CRL の有効期限が切れている、または無効となっている場合は、コマンド プロンプト ウィンドウを開き、「certutil -CRL」と入力して Enter キーを押し、新しい CRL を発行します。
新しい CRL および Delta CRL を生成するには:
CA をホストしているコンピューター上で [スタート] をクリックし、[管理ツール] をポイントして [証明機関] を選択します。
コンソール ツリーで、[失効した証明書] をクリックします。
[操作] メニュー上で、[すべてのタスク] をポイントし、[公開] をクリックします。
新しい CRL を選択して以前公開した CRL を上書きするか、または Delta CRL を選択して現在の Delta CRL の公開のみを行います。
Certutil コマンドライン ツールを使用して CRL を作成するには、以下の手順を実行します。
CA をホストしているコンピューター上で、[スタート] をクリックし、「cmd」と入力してから、Enter キーを押します。
「certutil -CRL」と入力し、Enter キーを押します。
Certutil コマンドライン ツールを使用して CRL を AD DS に公開するには、以下の手順を実行します。
コマンド プロンプト ウィンドウを開きます。
「certutil -dspublish "<crlname.crl>" ldap:///CN=<CA name>,CN=<CA hostname>,CN=CDP,CN=Public Key Services,CN=Ser vices,CN=Configuration,DC=<contoso>,DC=<com>?certificateRevocationList?base?objectClass=cRLDistributionPoint」と入力し、Enter キーを押します。
crlname.crl を CRL ファイルの名前に置換し、CA 名および CA ホスト名を使用している CA 名と CA を実行しているホスト名に置換し、contoso および com を使用している Active Directory ドメインの名前空間に置換します。
証明機関 (CA) 証明書およびチェーンが有効であることを確認するには:
CA をホストしているコンピューター上で、[スタート] をクリックし、「mmc」と入力してから、Enter キーを押します。
[ユーザー アカウント制御] ダイアログ ボックスが表示されたら、表示された操作が正しいことを確認し、[続行] をクリックします。
[ファイル] メニュー上で、[スナップインの追加と削除] をクリックし、[証明書] をクリックしてから、[追加] をクリックします。
[コンピューター アカウント] をクリックし、[次へ] をクリックします。
[完了] をクリックしてから、[OK] をクリックします。
コンソール ツリー内で、[証明書 (ローカル コンピューター)] をクリックしてから、[個人用] をクリックします。
有効期限内の CA 証明書がこのストアに存在していることを確認します。
証明書を右クリックし、[エクスポート] を選択して証明書のエクスポート ウィザードを開始します。
証明書を Cert.cer というファイルにエクスポートします。
[スタート] をクリックし、「cmd」と入力して Enter キーを押します。
「certutil -urlfetch -verify <cert.cer>」と入力し、Enter キーを押します。
検証、チェーン構築、失効確認が報告されていない場合は、チェーンは有効です。
Target | Microsoft.Windows.CertificateServices.CARole.2016 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 49 | ||
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.49" 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">49</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="AlertMessageID73782f4f349a427595c46cb8896563ed"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>