Windows-Server-2008-R2

Active Directory 證書服務無法啟動 - 錯誤 100

  • April 1, 2017

我已將我的 Active Directory 證書服務企業 CA 遷移到新伺服器(並從 Windows 2003 R2 x86 遷移到 Windows 2008 R2 x64)。我在檢查證書吊銷列表時遇到問題,但我已經從根 CA 重新發布了吊銷列表,當我執行 certutil -urlfetch -verify 時,我不再收到任何錯誤:

Verified Issuance Policies: None
Verified Application Policies: All
Cert is a CA certificate
Leaf certificate revocation check passed
CertUtil: -verify command completed successfully.

但是當我嘗試啟動 CA 時,我仍然會遇到同樣的錯誤。我得到以下彈出視窗:

Microsoft Active Directory Certificate Services
---------------------------
The system cannot find the file specified. 0x2 (WIN32: 2)

The policy module for a CA is missing or incorrectly registered. To view or change
policy module settings, right-click on the CA, click Properties, and then click the
Policy Module tab.
---------------------------
OK   

我在日誌中收到以下錯誤:

Log Name:      Application
Source:        Microsoft-Windows-CertificationAuthority
Date:          26/06/2012 15:59:45
Event ID:      100
Task Category: None
Level:         Error
Keywords:      Classic
User:          SYSTEM
Computer:      SRV112.cobbsch.cobbetts.co.uk
Description:
Active Directory Certificate Services did not start: Could not load or verify the current CA certificate.  Cobbetts LLP Enterprise CA The system cannot find the file specified. 0x80070002 (WIN32: 2).
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
 <System>
   <Provider Name="Microsoft-Windows-CertificationAuthority" Guid="{6A71D062-9AFE-4F35-AD08-52134F85DFB9}" EventSourceName="CertSvc" />
   <EventID Qualifiers="49754">100</EventID>
   <Version>0</Version>
   <Level>2</Level>
   <Task>0</Task>
   <Opcode>0</Opcode>
   <Keywords>0x80000000000000</Keywords>
   <TimeCreated SystemTime="2012-06-26T14:59:45.000000000Z" />
   <EventRecordID>852</EventRecordID>
   <Correlation />
   <Execution ProcessID="0" ThreadID="0" />
   <Channel>Application</Channel>
   <Computer>SRV112.cobbsch.cobbetts.co.uk</Computer>
   <Security UserID="S-1-5-18" />
 </System>
 <EventData Name="MSG_E_CA_CERT_INVALID">
   <Data Name="CACommonName">Cobbetts LLP Enterprise CA</Data>
   <Data Name="ErrorCode">The system cannot find the file specified. 0x80070002 (WIN32: 2)</Data>
 </EventData>
</Event>

Microsoft 有此錯誤的文件:http ://technet.microsoft.com/en-us/library/cc774550(v=ws.10).aspx

但是文件只是談到 CA 鏈沒有驗證,現在就是這樣。

我想知道這是某種記憶體故障,還是不正確 CRL 的記憶體副本(我之前遷移了根 CA,必須在 certutil 正確驗證之前重新發布 CRL),所以我嘗試重新啟動以清除記憶體。

那並沒有改變什麼。

我還嘗試將 Certutil 作為 SYSTEM 執行,以查看是否存在權限問題,但這也沒有解決問題。

$$ To run as system: run psexec -i -s cmd.exe from an elevated command prompt and it will launch a command prompt as system. You can run whoami to check. $$

我通過 Microsoft 支持解決了這個問題,但我真的不明白他們做了什麼來解決它。

挖出微軟支持說明,希望這些對某人有用:

  1. 我們發現 certenroll 文件夾中的 CRL 缺失,無法從根 CA 驗證吊銷狀態。
  2. 我們將 CRL 從 Intermediate CA 複製到 Issuing Sub-CA,但仍然出現錯誤。
  3. 根據調試團隊工程師的說法,我們刪除並重新安裝了 ADCS 角色,但沒有幫助。
  4. 最後,我們在 HKLM\system\CurrentControlSet\Services\Certsvc\Configuration 系統資料庫下發現 CertHash 具有過期證書的舊值。
  5. 刪除舊的雜湊值並用 (-) 符號替換它們並啟動證書服務。
  6. 證書服務已成功啟動。

我有同樣的錯誤。我使用的是 nCipher 的硬體安全模組。ADCS 無法訪問其私鑰。似乎在啟動 ADCS 服務時,它會在檢查私鑰的人中進行一些測試。因此,我相應地配置了我的 HSM。現在可以了!!!

引用自:https://serverfault.com/questions/402388