CA 憑證鏈結中的憑證已過期。
鏈結或路徑驗證是一種處理序,在憑證鏈結於受信任的自我簽署憑證上終止之前,終端實體 (使用者或電腦) 憑證和所有憑證授權單位 (CA) 憑證都會藉由該處理序以階層方式處理。通常,這是根 CA 憑證。如果 CA 憑證的可用性、有效性和鏈結驗證有問題,Active Directory 憑證服務 (AD CS) 啟動會失敗。
在鏈結中為已過期的 CA 憑證重新發行憑證
已過期的憑證授權單位 (CA) 憑證會在事件記錄檔中確認出來。若要解決此問題:
檢查憑證是否已過期。
確認憑證鏈結。
如果問題仍然存在,請啟用 CryptoAPI 2.0 診斷來解決發現的任何錯誤,然後重新發行並重新安裝已過期的憑證。
若要執行這些程序,您必須擁有管理 CA 權限,或者必須已被委派適當的權限。
檢查 CA 憑證是否過期
若要檢查特定的 CA 憑證是否已過期:
在主控 CA 的電腦上,按一下 [開始],指向 [系統管理工具],然後按一下 [憑證授權單位]。
在 CA 節點上按一下滑鼠右鍵,然後按一下 [內容]。
過期的憑證會在 CA 憑證的清單中以字組 (已過期) 列出。如果所有 CA 憑證皆已過期,您必須更新 CA 憑證並重新發行已過期 CA 憑證底下的任何憑證。
若要更新 CA 憑證,在 CA 節點上按一下滑鼠右鍵,指向 [所有工作],然後按一下 [更新 CA 憑證]。
CA 憑證更新後,請重新啟動 CA。
如果清單中有未過期的憑證,請尋找 CA 版本號碼與錯誤訊息中金鑰 ID 相符的憑證。例如,如果金鑰 ID 為 2,則 CA 版本為 2.1 或 2.2 的憑證將是正確的憑證。
如果此憑證未過期,請檢查是否有憑證鏈結的問題。將憑證匯出為檔案,然後開啟命令提示字元視窗,輸入 certutil -urlfetch -verify<CAcert.cer>,然後按 ENTER。(將 CAcert.cer 取代為憑證檔案的名稱。)
啟用 CryptoAPI 2.0 診斷
若要啟用 CryptoAPI 2.0 診斷:
在主控 CA 的電腦上,按一下 [開始],指向 [系統管理工具],然後按一下 [事件檢視器]。
在主控台樹狀目錄中,展開 [事件檢視器]、[應用程式及服務記錄檔]、[Microsoft]、[Windows] 和 [CAPI2]。
在 [可操作] 上按一下滑鼠右鍵,然後按一下 [啟用記錄]。
按一下 [開始],指向 [系統管理工具],然後按一下 [服務]。
在 [Active Directory 憑證服務] 上按一下滑鼠右鍵,然後按一下 [重新啟動]。
若要確認憑證授權單位 (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 | ||
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.58_Error" 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="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-CertificationAuthority</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">58</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">EventLevel</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="Integer">1</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</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="AlertMessageIDa56c8730d300410882edc1f355f85f5d"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>