無法檢查撤銷
鏈結或路徑驗證是一種處理序,在憑證鏈結於受信任的自我簽署憑證上終止之前,終端實體 (使用者或電腦) 憑證和所有憑證授權單位 (CA) 憑證都會藉由該處理序以階層方式處理。通常,這是根 CA 憑證。如果 CA 憑證的可用性、有效性和鏈結驗證有問題,Active Directory 憑證服務 (AD CS) 啟動會失敗。
載入和確認有效的 CA 憑證和鏈結
您必須確認有效的憑證授權單位 (CA) 憑證可供存取,以便進行憑證鏈結驗證。您可以透過確認下列事項,解決與找出有效 CA 憑證相關聯的問題:
主控 CA 的電腦上存在有效的 CA 憑證。
在 AIA 容器內存在有效的 CA 憑證。
可以驗證 CA 憑證鏈結。
如果鏈結中 CA 的憑證撤銷清單 (CRL) 已過期,則會產生新的 CRL。
若要執行這些程序,您必須擁有管理 CA 權限,或者必須已被委派適當的權限。
確認主控 CA 的電腦上存在有效的 CA 憑證
若要確認主控 CA 的電腦上存在有效的 CA 憑證:
按一下 [開始] 並輸入 mmc,然後按 ENTER。
當 [使用者帳戶控制] 對話方塊出現時,請確認其中顯示的動作即是您要執行的動作,然後按一下 [繼續]。
在 [檔案] 功能表上,依序按一下 [新增/移除嵌入式管理單元]、[憑證] 和 [新增]。
依序按一下 [電腦帳戶] 和 [下一步]。
依序按一下 [完成] 和 [確定]。
在主控台樹狀目錄中,依序按一下 [憑證 (本機電腦)] 和 [個人]。
確認此存放區中存在未過期的 CA 憑證。
確認 AIA 容器內存在有效的 CA 憑證
若要確認 AIA 容器內存在有效的 CA 憑證:
按一下 [開始],指向 [系統管理工具],然後按一下 [Active Directory 站台及服務]。
按一下 [Active Directory 站台及服務 [網域名稱]]。
在 [檢視] 功能表上,按一下 [顯示服務節點]。
依序按兩下 [Services] 和 [Public Key Services],然後按一下 AIA。
確認 AIA 容器中存在未過期的 CA 憑證。
驗證 CA 憑證鏈結
若要驗證 CA 憑證鏈結:
開啟 [命令提示字元] 視窗。
在 CA 憑證上輸入 certutil -urlfetch -verify,然後按 ENTER。
確認 AIA 容器和 CRL 發佈點網路位置可供使用、鏈結中的所有憑證皆有效並且未撤銷,以及有效的 CRL 皆可供使用。
如果 AIA 或 CRL 發佈點位置不可使用,則找出並解決導致無法存取的問題。
如果鏈結中的任何憑證已過期或已被撤銷,則更新這些憑證。如果需要重新發行 CA 憑證,則鏈結中此憑證底下的所有憑證都必須重新發行。
如果鏈結中 CA 的 CRL 已過期,則在此 CA 上產生新的基本及 Delta CRL,並將它們複製到所需的位置。
如果 CA 為離線狀態,您可能需要重新啟動它。
檢查並發佈 CRL
若要檢查並視需要發佈新的 CRL:
在造成問題的 CA 上,檢查目前發佈的 CRL,其依預設會建立在資料夾 %windir%\System32\CertSrv\CertEnroll 中。
如果此位置上的 CRL 目前已過期或無效,請開啟命令提示字元視窗,輸入 certutil -CRL 並按 ENTER 以發佈新的 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 名稱>,CN=<CA 主機名稱>,CN=CDP,CN=Public Key Services,CN=Ser vices,CN=Configuration,DC=<contoso>,DC=<com>?certificateRevocationList?base?objectClass=cRLDistributionPoint,然後按 ENTER。
以 CRL 檔案的名稱取代 crlname.crl,並以您的 CA 名稱和執行 CA 的主機的名稱取代 CA 名稱和 CA 主機名稱,然後以您的 Active Directory 網域的命名空間取代 contoso 和 com。
若要確認憑證授權單位 (CA) 憑證和鏈結有效:
在主控 CA 的電腦上,按一下 [開始],輸入 mmc,然後按 ENTER。
當 [使用者帳戶控制] 對話方塊出現時,請確認其中顯示的動作即是您要執行的動作,然後按一下 [繼續]。
在 [檔案] 功能表上,依序按一下 [新增/移除嵌入式管理單元]、[憑證] 和 [新增]。
依序按一下 [電腦帳戶] 和 [下一步]。
依序按一下 [完成] 和 [確定]。
在主控台樹狀目錄中,依序按一下 [憑證 (本機電腦)] 和 [個人]。
確認此存放區中存在未過期的 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>