憑證服務無法在 NTAuth 存放區中找到 CA 憑證。
Active Directory 憑證服務 (AD CS) 至少需要讀取存取權,在部分例項中,Active Directory 網域服務 (AD DS) 中的某些物件需要寫入存取權。無法存取這些 Active Directory 物件可防止 AD CS 啟動。
確保 AD CS 能夠將 CA 憑證發佈至 NTAuth 存放區
若要修正此問題:
確認對 NTAuth 存放區的權限。
檢查 NTAuth 存放區,並視需要手動發佈憑證授權單位 (CA) 憑證。
如果您在尋找 CA 憑證以將其發佈至 NTAuth 存放區時遇到問題,請先使用「尋找電腦上的 CA 憑證檔案」一節中的程序,然後再將其發佈至 NTAuth 存放區。
若要執行這些程序,您必須擁有管理 CA 權限,或者必須已被委派適當的權限。
確認 NTAuth 存放區權限
若要檢查 NTAuth 容器中 CA 的權限:
在網域控制站上按一下 [開始],指向 [系統管理工具],然後按一下 [Active Directory 站台及服務]。
按一下 [Active Directory 站台及服務 [網域名稱]],其中 [網域名稱] 是您的網域的名稱。
在 [檢視] 功能表上,按一下 [顯示服務節點]。
依序按兩下 [Services] 和 [Public Key Services],然後在 [NTAuthCertificates] 上按一下滑鼠右鍵,再按一下 [內容]。
按一下 [安全性] 索引標籤,然後確認主控 CA 的電腦具有讀取權限。
確認 NTAuth 存放區的內容
若要檢查 Active Directory 網域服務 (AD DS) 中 NTAuth 存放區的內容:
在命令提示字元中,輸入 certutil -viewstore ldap:///CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=<contoso>,DC=<com>,然後按 ENTER。將 <contoso> 和 <com> 取代為您 Active Directory 根網域的命名空間。
如果輸出中未列出 CA 憑證,請輸入以下命令:certutil -dspublish <cert.cer> ntauthca 並按 ENTER 以手動新增憑證。將 <cert.cer> 取代為 CA 憑證檔案。
尋找電腦上的 CA 憑證檔案
若要尋找本機檔案系統上的 CA 憑證檔案:
開啟命令提示字元視窗。
輸入 certutil -getreg CA\CACertPublicationURLs,然後按 ENTER。
依預設,此檔案儲存於 %systemroot%\system32\certsrv\certenroll。
Target | Microsoft.Windows.CertificateServices.CARole.2016 |
Category | EventCollection |
Enabled | True |
Event_ID | 93 |
Event Source | Microsoft-Windows-CertificationAuthority |
Alert Generate | False |
Remotable | True |
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
WriteToCertSvcEvents | WriteAction | Microsoft.Windows.CertificateServices.CARole.CertSvcEvents.Publisher | Default |
WriteToDB | WriteAction | Microsoft.SystemCenter.CollectEvent | Default |
<Rule ID="Microsoft.Windows.CertificateServices.CARole.2016.CertSvcEvents.93" 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">93</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"/>
</WriteActions>
</Rule>