証明書サービスで証明書失効リスト (CRL) を公開できませんでした。
証明書を信頼してもよいか判断するために必要な情報を顧客に提供することは、証明機関 (CA) および公開キー基盤 (PKI) の最も重要なセキュリティ機能の一つです。管理者の場合は、ただちに予定された有効期限に到達しておらず、信頼されていない証明書を失効させ、この情報を証明書失効リスト (CRL) 内で公開するが重要です。CRL で公開されている問題と可用性をモニタリングおよび特定することは、PKI セキュリティの観点において非常に重要です。
AD CS による証明書失効リストの公開を有効化する
このイベント ログ メッセージの考えられる解決策には、次のようなものがあります。
イベント ログ メッセージはライトウェイト ディレクトリ アクセス プロトコル (LDAP) アドレスとしてフォーマットされた Active Directory の場所を指定し、証明機関 (CA) がこの場所への書き込みアクセス許可を持っていることを確認します。これを行うには、「Active Directory CRL 配布ポイントのアクセス許可の確認」セクションの手順にしたがってください。
イベント ログ メッセージに記載されている、任意のファイルの場所でアクセス コントロール リストを確認し、CA コンピューターがこの場所への書き込みアクセス許可を持っていることを確認します。これを行うには、「CRL 配布ポイントのアクセス許可の確認」セクションの手順にしたがってください。
「ネットワーク接続の確認」セクションの手順にしたがって、CA とドメイン コントローラーの間のネットワーク接続を確認します。
ネットワークの問題やアクセス許可の問題を解決した後、「新しい CRL の公開」の手順に従って新しい CRL を公開します。
それでも新しい CRL を公開できない場合は、「構成済の CRL 配布ポイントの有効性を確認する」セクションの手順にしたがって、CRL 配布ポイントが有効であることを確認します。
これらの手順を実行するには、CA 管理権限を付与されているか、または適切な権限を委任されている必要があります。
Active Directory CRL 配布ポイントのアクセス許可の確認
Active Directory CRL 配布ポイントのアクセス許可を確認するには、次の手順を実行します。
Active Directory 管理ツールがインストールされているコンピューターで、[スタート] をクリックし、[管理ツール] をポイントしてから [Active Directory サイトとサービス] をクリックします。
[表示] メニュー上で、[サービス ノードの表示] をクリックします。
[Services] をダブルクリックし、[Public Key Services] をダブルクリックします。
[AIA] を右クリックして、[プロパティ] をクリックします。
[セキュリティ] タブをクリックし、CA がこの場所への書き込み許可を持っていることを確認します。
ファイルの場所の CRL 配布ポイントのアクセス許可の確認
ファイルの場所の CRL 配布ポイントのアクセス許可を確認するには、次の手順を実行します。
[スタート] をクリックし、CRL の公開に使用するファイル共有アドレスを入力してから Enter キーを押します。
[ファイル共有] を右クリックし、[プロパティ] をクリックします。
[セキュリティ] タブをクリックし、CA がこの場所への書き込み許可を持っていることを確認します。
ネットワーク接続の確認
CA とドメイン コントローラーとの間のネットワーク接続に問題があるかどうかを判断するには、次の手順に従います。
CA をホストしているコンピューター上でコマンド プロンプト ウィンドウを開きます。
「ping <server_FQDN>」と入力し、Enter キーを押します。ここで server_FQDN はドメイン コントローラーの完全修飾ドメイン名 (FQDN) です。ドメイン コントローラーに接続できる場合は、次のように返信されます。
IP_address からの応答: バイト数=32 時間=3ms TTL=59
IP_address からの応答: バイト数=32 時間=20ms TTL=59
IP_address からの応答: バイト数=32 時間=3ms TTL=59
IP_address からの応答: バイト数=32 時間=6ms TTL=59 3.
コマンド プロンプトで「ping <IP_address>」と入力し、Enter キーを押します。ここで <IP_address> はドメイン コントローラーの IP アドレスです。
IP アドレスを使用した場合はドメイン コントローラーの 接続が成功するけれども、FQDN では失敗する場合は、ドメイン ネーム システム (DNS) ホスト名解決に問題がある可能性があることを示しています。
IP アドレスを使用したドメイン コントローラーの接続が失敗する場合は、ネットワーク接続に問題がある可能性があることを示しています。ネットワーク カードの不具合やネットワーク ケーブルの切断や、ファイアウォール構成インターネットプロトコルセキュリティ (IPsec) 構成に関連するイベント ログ エラーなどの、ハードウェアの問題を確認して解決します。
新しい CRL の公開
証明機関スナップインを使用して新しい CRL を公開するには、次の手順を実行します。
[スタート] をクリックし、[管理ツール] をポイントして、[証明機関] をクリックします。
[失効した証明書] を右クリックし、[すべてのタスク] をポイントし、[公開] をクリックして新しい CRL を公開します。
Certutil コマンド ライン ツールを使用して新しい CRL を公開するには、次の手順を実行します。
コマンド プロンプト ウィンドウを開きます。
構成済みのすべての CRL 公開場所へ CRL を公開するには、「certutil -CRL」と入力し、Enter キーを押します。
CRL を直接 Active Directory の場所に公開するには、「certutil -dspublish "<crlname.crl>" ldap:///CN=<CA name>,CN=<CA hostname>,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=<contoso>,DC=<com>?certificateRevocationList?base?objectClass=cRLDistributionPoint」と入力し Enter キーを押します。
「crlname.crl」を自分の CRL ファイルの名前に置き換え、CA の名前および CA のホスト名を自分の CA の名前および CA を実行しているホストの名前と置き換え、「contoso」および「com」を自分の Active Directory ドメインの名前空間に置き換えます。
構成済の CRL 配布ポイントの有効性を確認する
構成済の CRL 配布ポイントの有効性を確認するには、次の手順を実行します。
[スタート] をクリックし、[管理ツール] をポイントして、[証明機関] をクリックします。
CA の名前を右クリックしてから、[プロパティ] をクリックします。
[拡張子] タブをクリックします。[この場所に CRL を公開する] チェックボックスで選択された CRL 配布ポイントを書き留めます。
また、CA 上のコマンド プロンプト ウィンドウを開き、コマンド certutil -getreg ca\crlpublicationurls を実行して、構成済みの CRL 配布ポイントの URL を判別することもできます。
証明書失効リスト (CRL) が正しく動作していることを確認するには、最近発行されたエンド エンティティ (ユーザーまたはコンピューター) 証明書で次の手順を実行します。
ネットワークに接続されているコンピューター上でコマンド プロンプト ウィンドウを開きます。
「certutil -url <cert.cer>」と入力し、Enter キーを押します。
<cert.cer> を、証明書のエクスポート ウィザードを使用して証明書をエクスポートして作成した証明書ファイルの名前に置き換えます。
表示されるダイアログ ボックス内の、[取得] の下で、[CRL (CDP から)] をクリックし、[取得] をクリックします。
すべての取得済みの CRL 配布ポイントのステータスが、「検証済み」として表示されていることを確認します。
Target | Microsoft.Windows.CertificateServices.CARole.2016 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 66 | ||
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.66" 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">66</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="AlertMessageID6c8002bc89f54663ab6d88ca6fbd2570"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>