Active Directory 證書服務無法啟動 - 錯誤 100
我已將我的 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 支持解決了這個問題,但我真的不明白他們做了什麼來解決它。
挖出微軟支持說明,希望這些對某人有用:
- 我們發現 certenroll 文件夾中的 CRL 缺失,無法從根 CA 驗證吊銷狀態。
- 我們將 CRL 從 Intermediate CA 複製到 Issuing Sub-CA,但仍然出現錯誤。
- 根據調試團隊工程師的說法,我們刪除並重新安裝了 ADCS 角色,但沒有幫助。
- 最後,我們在 HKLM\system\CurrentControlSet\Services\Certsvc\Configuration 系統資料庫下發現 CertHash 具有過期證書的舊值。
- 刪除舊的雜湊值並用 (-) 符號替換它們並啟動證書服務。
- 證書服務已成功啟動。
我有同樣的錯誤。我使用的是 nCipher 的硬體安全模組。ADCS 無法訪問其私鑰。似乎在啟動 ADCS 服務時,它會在檢查私鑰的人中進行一些測試。因此,我相應地配置了我的 HSM。現在可以了!!!