証明書サービスを開始できませんでした: セキュリティのアクセス許可が破損しています。
Active Directory 証明書サービス (AD CS) はレジストリ内に重要な構成設定を記録しますが、この情報が壊れたり削除された場合には、サービスが起動しなかったり正しく作動しないことがあります。
証明機関のセキュリティのアクセス許可を修正する
必須セキュリティのアクセス許可に関する情報はレジストリに保存されており、証明機関 (CA) が適切に機能するために必要です。
これらの手順を実行するには、CA 管理権限を付与されているか、または適切な権限を委任されている必要があります。
セキュリティのアクセス許可の問題を解決するには、以下の手順を実行します。
セキュリティ記述子が破損しているかを確認します。
レジストリのバックアップがある場合は、レジストリ設定をバックアップから復元します。
CA のバックアップがある場合は、CA をバックアップから復元できます。
復元手順に失敗した場合は、CA デバッグ ログを作成して、Microsoft カスタマー サービス & サポートに問い合わせてください。詳細については、 http://go.microsoft.com/fwlink/?LinkId=89446 をご覧ください。
セキュリティ記述子の破損を確認する
CA のセキュリティ記述子が破損しているかを確認するには、以下の手順を実行します。
コマンド プロンプト ウィンドウを開きます。
「certutil -getreg ca\security」と入力し、Enter キーを押します。
CA レジストリ設定を復元する
注意:レジストリを誤って編集すると、システムに重大な障害をもたらす可能性があります。レジストリを変更する前に、重要なデータのバックアップを作成するようにしてください。
ハイブ ファイルからレジストリ設定を復元するには、以下の手順を実行します。
CA をホストしているコンピューター上で、[スタート] をクリックし、「regedit」と入力してから、Enter キーを押します。
ハイブを復元するキーを選択します。
[ファイル] メニューで [インポート] をクリックしてから、ハイブが置かれているドライブ、フォルダー、またはネットワーク コンピューターとフォルダーを選択します。
[ファイルの種類] で [レジストリ ハイブ ファイル] をクリックし、ハイブの正しいファイル名を選択します。
[開く] をクリックします。ハイブが正常にインポートされたことを示すメッセージが表示されたら、[OK] をクリックします。
CA をバックアップから復元する
注:この手順を完了するには、障害が発生する前に、レジストリ設定、秘密キーと CA 証明書、証明書データベース、およびデータベース ログを含めた CA のバックアップを作成しておく必要があります。
CA を復元するには、以下の手順を実行します。
Windows を再インストールする必要がある場合は、現在のサービス パックとセキュリティ更新プログラムをすべて適用してから CA を復元し、Active Directory 証明書サービス (AD CS) を再インストールします。
CA をホストしているコンピューター上で、[スタート] をクリックし、[管理ツール] をポイントし、[証明機関] をクリックします。
CA の名前を右クリックして、[停止] をクリックします。
前の手順を使用して、CA のレジストリ ハイブをインポートします。
証明機関スナップインで CA 名を右クリックし、[すべてのタスク] をクリックしてから、[CA の復元] をクリックします。
証明機関の復元ウィザードが開始したら、[次へ] をクリックしてから、[秘密キーと CA 証明書] をクリックします。
[証明書データベースおよび証明書データベースのログ] をクリックします。
バックアップ フォルダーの場所を入力し、[次へ] をクリックします。
バックアップ設定を確認します。[発行されたログと保留中の要求] の設定が表示されます。
[完了] をクリックしてから、[はい] をクリックして、AD CS を再起動します。
CA デバッグ ログの作成
デバッグ ログを作成するには、次の手順を実行します。
CA をホストしているコンピューター上で、[スタート] をクリックし、「cmd」と入力してから、Enter キーを押します。
「certutil -setreg ca\debug 0xffffffe3」と入力し、Enter キーを押します。
[スタート] ボタンをクリックし、[管理ツール] をポイントして [サービス] をクリックします。
[Active Directory 証明書サービス] を選択し、[スタート] をクリックします。
問題が再現した場合は、%windir% ディレクトリで詳細診断情報を含む certsrv.log ファイルを検索します。
診断の生成が終了したら、コマンド プロンプト ウィンドウを開いて「certutil -delreg ca\debug」と入力し、Enter キーを押してデバッグを無効にします。
証明機関 (CA) のレジストリ設定を確認するには、次の手順を実行します。
CA のレジストリ設定を変更した後、[スタート] をクリックし、[管理ツール] をポイントし、[証明機関] をクリックします。
CA の名前を選択し、[再起動] をクリックします。
[スタート] をクリックし、「cmd」と入力して Enter キーを押します。
「certutil -getreg ca\security」と入力し、Enter キーを押します。
壊れている設定がなくなると、「-getreg command completed successfully」(-getreg コマンドが正常に完了しました)」と表示されます。
Target | Microsoft.Windows.CertificateServices.CARole.2016 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 95 | ||
Event Source | Microsoft-Windows-CertificationAuthority | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | High | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
WriteToCertSvcEvents | WriteAction | Microsoft.Windows.CertificateServices.CARole.CertSvcEvents.Publisher | Default |
WriteToDB | WriteAction | Microsoft.SystemCenter.CollectEvent | Default |
<Rule ID="Microsoft.Windows.CertificateServices.CARole.2016.CertSvcEvents.95" 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">95</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"/>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="AlertMessageID28e38c0808c649d7b7063997775b7a66"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>