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>
マイクロソフトには、このエラーに関するドキュメントがあります。 http://technet.Microsoft.com/en-us/library/cc774550(v = ws.10).aspx
しかし、ドキュメンテーションはCAチェーンが検証しないことについて話しているだけであり、現在はそうです。
キャッシュされた障害の一種なのか、不正なCRLのキャッシュされたコピーなのか(certutilが正しく検証する前にルートCAを移行し、CRLを再公開する必要があったのか)と思ったので、再起動してフラッシュアウトしましたキャッシュ。
それは何も変わりませんでした。
また、CertutilをSYSTEMとして実行して、アクセス許可の問題があるかどうかを確認しましたが、問題が解決しませんでした。
[システムとして実行するには:管理者特権のコマンドプロンプトからpsexec -i -s cmd.exeを実行すると、システムとしてコマンドプロンプトが起動します。 whoamiを実行して確認できます。]
この問題をマイクロソフトのサポートで解決しましたが、彼らがそれを解決するために彼らが何をしたのか本当に理解していませんでした。
Microsoftのサポートノートを掘り下げ、これらが誰かに役立つことを願って:
同じエラーが発生しました。 nCipherのハードウェアセキュリティモジュールを使用していました。 ADCSはその秘密鍵にアクセスできませんでした。 ADCSサービスを開始するときに、秘密鍵をチェックする人の間で何らかのテストを行うようです。それで、それに応じてHSMを構成しました。今では動作します!!!
私は最近、2003年から2012年にR2に移行しましたが、あなたが説明したのとまったく同じ問題がありました。古いCAからレジストリバックアップをインポートするまで、CAは正常に復元して起動します。
マイクロソフトとの電話と数時間のトラブルシューティングの後、私たちは解決策を見つけました。私はグーグルのいずれかでこのページを見つけませんでしたが、ここにあります:
Certificate Serverサービスが開始せず、次のエラーが表示される:データが無効です。Windows2003ベースの認証局では0xd(Win32:13)
基本的に、期限切れの証明書、またはCAcerthash
レジストリキーに秘密鍵がない証明書があります。私の場合、それは期限切れの証明書でした。
問題を解決するために
mmc
で証明書を開き、コンピューターを選択します。
個人証明書ストアを開きます。
秘密鍵のアイコンが表示されていないか、有効期限が過ぎている証明書を探します。
証明書を開き、詳細な痛みの拇印をメモします。これをCAcerthash
レジストリにあるサムプリントと一致させる必要があります。
サムプリントを取得したら、CA certhashレジストリで欠落または期限切れの証明書のサムプリントを確認し、サムプリントの値をマイナス記号に置き換えます-
レジストリキーを保存し、認証局の開始を試みます。
これは私にとってはうまくいったので、誰かがこれが役に立てば幸いです。
このエラーは、OS SKUを変更した場合に発生する可能性があります。例えば。 2003 Enterpriseから2008 R2 Standardエディションになりました。 OSの詳細とともにSKUについて言及しないでください。
そうでないと仮定して、これをトラブルシューティングするには、以下を収集する必要があります
デバッグログを有効にし、procmonを開始して、サービスの開始を試みます。サービスの起動に失敗した場合は、procmonを停止します。
どこかで共有していただければご覧になれます。
Windows 2008 R2から2012 R2にアップグレードされた下位CAで同様の問題が発生しました。幸いなことに、私はServer 2012 R2で新しいルートCAを構築したばかりで、レジストリ設定と一致させることができました。アップグレードされたコンピューターのHKLM\system\CurrentControlSet\Services\CertSvc\Configuration \\ CSPキーの一部の値が2012 R2コンピューターと一致しないことがわかりました。具体的には、「CNGPublicKeyAlgorithm = RSA」が欠落しており、「プロバイダー」を「Microsoftソフトウェアキーストレージプロバイダー」に変更し、「ProviderType」を1から0に変更する必要があります。これらの変更を行った後、証明書サービスはエラーなしで開始できました。