憑證服務無法發佈終端實體憑證。
憑證授權單位 (CA) 的其中一個主要功能是評估用戶端的憑證要求,並且如果符合預先定義的準則,則對該用戶端發行憑證。為了成功註冊憑證,一些要素必須在提交要求前準備就緒,包括具有有效 CA 憑證的 CA;正確設定的憑證範本、用戶端帳戶和憑證要求;以及用戶端提交要求至 CA 的方式,要求必須經過驗證並安裝發行的憑證。
啟用終端實體憑證的發行
若要發佈憑證,您需要具有網路連線和網路權限。若要解決此問題:
請確認您具有用戶端與憑證授權單位 (CA) 之間的網路連線。
請確認 CA 對要求憑證的實體之使用者或電腦物件的 userCertificate 屬性具有讀取與寫入權限。
如果您有多個網域或一個雙層 (父系/子系) 網域階層,則需要允許其中一個網域 (網域 A) 中的憑證發行者群組對另一個網域 (網域 B) 中的 userCertificate 屬性具有讀取與寫入權限。若要這樣做,請遵循「修正跨網域權限錯誤」一節中的程序。
發佈憑證。
若要執行這些程序,您必須擁有管理 CA 權限,或者必須已被委派適當的權限。
確認用戶端與 CA 之間的網路連線
若要確認 CA 的用戶端連線:
在用戶端上按一下 [開始],然後輸入 cmd 並按 ENTER。
輸入 ping <server_FQDN>,其中 <server_FQDN> 是 CA 的完整網域名稱 (FQDN) (例如,server1.contoso.com),然後按 ENTER。
如果 ping 執行成功,您將會收到與下列類似的回覆:
回覆自 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> 是 CA 的 IP 位址),然後按 ENTER。
如果您可以使用 IP 位址成功連線至 CA,但使用 FQDN 卻失敗,這表示網域名稱系統 (DNS) 主機名稱解析可能有問題。如果您無法使用 IP 位址成功連線至 CA,則這表示網路連線、防火牆設定或網際網路通訊協定安全性 (IPsec) 設定可能有問題。
確認對 Active Directory 中 Domain Computers 和 Domain Users 容器的權限
若要確認 CA 對 Domain Computers 和 Domain Users 容器具有必要權限:
按一下 [開始],指向 [系統管理工具],然後按一下 [Active Directory 站台及服務]。
在 [檢視] 功能表上,按一下 [顯示服務節點]。
依序按兩下 [Services] 和 [Public Key Services],然後在 [網域電腦] 上按一下滑鼠右鍵,再按一下 [內容]。
在 [安全性] 索引標籤上,確認 Cert Publishers 群組具有讀取與寫入權限。
在 [網域使用者] 上按一下滑鼠右鍵,然後按一下 [內容]。
在 [安全性] 索引標籤上,確認 Cert Publishers 群組具有讀取與寫入權限。
修正跨網域權限錯誤
若要使用 Dsacls 工具設定這些權限:
按一下 [開始],輸入 cmd 並按 ENTER,然後執行下列命令:
dsacls "dc=<domainB>,dc=<contoso>,dc=<com>" /I:S /G "<domainA>\Cert Publishers":RP;userCertificate,user
dsacls "dc=<domainB>,dc=<contoso>,dc=<com>" /I:S /G "<domainA>\Cert Publishers":WP;userCertificate,user
dsacls "cn=<adminsdholder>,cn=system,dc=<contoso>,dc=<com>" /I:S /G \Cert Publishers":RP;userCertificate,user
dsacls "cn=<adminsdholder>,cn=system,dc=<domainB>,dc=<contoso>,dc=<com>" /I:S /G "<domainA>\Cert Publishers":WP;userCertificate,user
以貴組織的正確名稱替代範例中的預留位置 <domainname> 和 <com>。
如需詳細資訊,請參閱 Microsoft 知識庫中的文章 281271 ( http://go.microsoft.com/fwlink/?LinkID=95695)。
發行憑證
若要發行憑證:
在主控 CA 的電腦上,按一下 [開始],鍵入 cmd 並按 ENTER。
鍵入 ping <ipaddress> (其中 <ipaddress> 是網域控制站的 IP 位址) 並按 ENTER,以確認您具有網路連線。如果您沒有網路連線,請修正問題並再試一次。
在命令提示字元中,輸入 certutil -dspublish <cert.cer> ldap:///<事件記錄檔訊息中包含的網路位置>,然後按 ENTER。<Cert.cer> 是使用 [憑證匯出精靈] 匯出的憑證檔案。
如果您具有連線但仍無法發佈憑證,請使用 [Active Directory 使用者和電腦] 來確認主控 CA 的電腦具有使用者或電腦物件之 userCertificate 屬性的讀取與寫入權限。(這通常是由憑證發行者群組中的群組成員實現)。
若要確認憑證要求處理是否正確運作:
按一下 [開始] 並輸入 certmgr.msc,然後按 ENTER。
當 [使用者帳戶控制] 對話方塊出現時,請確認其中顯示的動作即是您要執行的動作,然後按一下 [繼續]。
在主控台樹狀目錄中,按兩下 [個人],然後按一下 [憑證]。
在 [動作] 功能表上,指向 [所有工作],然後按一下 [要求新憑證] 以啟動 [憑證註冊精靈]。
針對任何類型的可用憑證使用精靈來建立和提交憑證要求。
在 [憑證安裝結果] 底下,確認註冊成功完成,並且沒有報告任何錯誤。您也可以按一下 [詳細資料] 以檢視憑證的其他資訊。
Target | Microsoft.Windows.CertificateServices.CARole.2016 |
Category | EventCollection |
Enabled | True |
Event_ID | 80 |
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.80" 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">80</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>