憑證服務無法發佈憑證撤銷清單 (CRL)。
憑證授權單位 (CA) 和公開金鑰基礎結構 (PKI) 最重要的安全功能之一是向用戶端提供用於判定是否應該信任某個憑證的資訊。對管理員而言,這意謂著需要立即撤銷未達到其排定到期日期的未受信任憑證,並在憑證撤銷清單 (CRL) 上發佈此資訊。監視並解決與 CRL 發行和可用性相關的問題是 PKI 安全性的一個重要層面。
啟用 AD CS 以發佈憑證撤銷清單
此事件記錄檔訊息的可能解決方式包括:
如果事件記錄檔訊息指定 Active Directory 位置,並且該位置已格式化為輕量型目錄存取通訊協定 (LDAP) 位址,請確認憑證授權單位 (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> (其中 server_FQDN 是網域控制站的完整網域名稱 (FQDN)),然後按 ENTER。如果可以連線至網域控制站,您將會收到與下列類似的回覆:
回覆自 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> (其中 <IP_address> 是網域控制站的 IP 位址),然後按 ENTER。
如果您可以使用 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 名稱>,CN=<CA 主機名稱>,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=<contoso>,DC=<com>?certificateRevocationList?base?objectClass=cRLDistributionPoint,然後按 ENTER。
以 CRL 檔案的名稱取代 crlname.crl,並以 CA 名稱和執行 CA 的主機之名稱取代 CA 名稱及 CA 主機名稱,然後以您的 Active Directory 網域的命名空間取代 contoso 及 com。
確認所設定 CRL 發佈點的有效性
若要確認所設定 CRL 發佈點的有效性:
按一下 [開始],指向 [系統管理工具],然後按一下 [憑證授權單位]。
在 CA 名稱上按一下滑鼠右鍵,然後按一下 [內容]。
按一下 [延伸] 索引標籤。記下已選取 [在這個位置公佈 CRL] 核取方塊的 CRL 發佈點位置。
您也可以透過在 CA 上開啟命令提示字元視窗並執行下面的命令,決定所設定的 CRL 發佈點 URL:certutil -getreg ca\crlpublicationurls。
若要確認憑證撤銷清單 (CRL) 發佈正確運作,請對最近發行的終端實體 (使用者或電腦) 憑證執行下列程序:
在已連線至網路的電腦上開啟命令提示字元視窗。
輸入 certutil -url <cert.cer>,然後按 ENTER。
將 <cert.cer> 取代為您透過 [憑證匯出精靈] 匯出憑證所建立之憑證檔案的名稱。
在出現的對話方塊中,按一下 [擷取] 底下的 [CRL (來自 CDP)],再按一下 [擷取]。
確認所有擷取的 CRL 發佈點的狀態都列示為 [已驗證]。
Target | Microsoft.Windows.CertificateServices.CARole.2016 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 75 | ||
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.75" 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">75</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="AlertMessageID9cb8180955a3408180dc7d3ccd53cb81"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>