証明書の要求が拒否されました。
証明機関 (CA) の主な機能の 1 つは、クライアントからの証明書要求を評価し、定義済み条件を満たしている場合は証明書をそのクライアントに発行することです。証明書を登録するには、要求を送信する前に、有効な CA 証明書 (適切に構成された証明書テンプレート、クライアント アカウント、証明書要求) を所有する CA、クライアントが CA に要求を送信する方法などのいくつかの事前準備を行い、要求を検証し、発行された証明書をインストールする必要があります。
証明書の要求が承認できない原因となっている条件を削除します。
チェーン構築の問題は、証明書の要求が失敗する一般的な原因です。以下の手順を使用して証明機関 (CA) の証明書チェーンを検証し、問題が特定された場合は解決します。
Active Directory ドメイン サービス (AD DS) でユーザーのアカウント情報を確認します。
証明書テンプレートの情報を確認します。
CA の証明チェーンを確認します。
最近の証明書失効リスト (CRL) を確認します。
新しい CRL を公開します。
それでも問題が解決されない場合は、以下のエリアの問題を確認し、解決します。
CA で失敗した要求のキュー
AD DS の接続性
証明書の要求の完了に必要な署名が利用できない可能性があります。その場合:
登録機関証明書を所有する追加のユーザーが、証明書の要求に署名できるようにします。
証明書テンプレートを変更し、登録機関の署名が少なくて済むようにします。
もう一度証明書の要求を送信します。
AD DS のユーザー アカウント情報を確認する
この手順を実行するには、Domain Admins のメンバーであるか、適切な権限を委任されている必要があります。
ユーザー アカウント情報を確認するには、以下の手順を実行します。
ドメイン コントローラー上で、[スタート] をクリックし、[管理ツール] をポイントしてから [Active Directory ユーザーとコンピューター] をクリックします。
コンソール ツリーで、ユーザーのアカウントがあるはずのドメインとユーザー グループを選択します。
ユーザー アカウントが存在している場合は、アカウントを右クリックし、[プロパティ] をクリックし、ユーザーがドメイン ネーム システム (DNS) 名を正しく構成していることを確認します。
証明書テンプレートの情報を確認する
この手順を実行するには、CA 管理権限を付与されているか、または適切な権限を委任されている必要があります。
証明書テンプレートの情報を確認するには、次の手順を実行します。
CA をホストしているコンピューター上で、[スタート] をクリックし、「certtmpl.msc」と入力してから、Enter キーを押します。
トラブルシューティングを行う証明書テンプレートを右クリックし、そのユーザーまたはグループがこのテンプレートに基づいて証明書に登録するためのアクセス許可を持っていることを確認します。
CA の証明書チェーンの確認
CA のチェーンを評価するには、以下の手順を実行します。
[スタート] をクリックし、「mmc」と入力して Enter キーを押します。
[ユーザー アカウント制御] ダイアログ ボックスが表示されたら、表示された操作が正しいことを確認し、[続行] をクリックします。
[ファイル] メニュー上で、[スナップインの追加と削除] をクリックし、[証明書] をクリックしてから、[追加] をクリックします。
[コンピューター アカウント] をクリックし、[次へ] をクリックします。
CA をホストしているコンピューターを選択し、[完了] 、[OK] の順にクリックします。
証明書チェーン内で各 CA 証明書を選択し、[証明書の表示] をクリックします。
[詳細] タブをクリックしてから [ファイルへコピー] をクリックして [証明書のエクスポート ウィザード] を起動します。それぞれの証明書に .cer 拡張子を付けて保存します。
コマンド プロンプトを開いて、各 CA 証明書で「certutil -urlfetch -verify <CAcert.cer>」と入力し、Enter キーを押します。<CAcert.cer> を、手順 7. で保存した CA 証明書ファイルの名前に置き換えます。
CA が発行したエンド エンティティ (ユーザーまたはコンピューター) の証明書と同じコマンドを使用し、チェーンとして CA 自体の CRL を確認します。
コマンド ライン出力で特定された問題があれば解決します。
新しい CRL の生成と公開
コマンド ラインの出力が CA の CRL が期限切れとなっていることを示していた場合、CA 上で新しい Base CRL および Delta CRL を生成し、必要な場所にコピーします。この操作を行うにはオフラインの CA を再起動する必要があります。
CA で現在公開されている CRL を確認します。既定では、CA は CRL を %windir%\System32\CertSrv\CertEnroll フォルダーに作成します。現在この場所にある CRL の有効期限が切れている、または無効となっている場合は、次の手順を使用して新しい CRL を公開します。
証明機関スナップインを使用して新しい CRL を公開するには、次の手順を実行します。
CA をホストしているコンピューターで、[スタート] をクリックし、[管理ツール]をポイントしてから [証明機関] をクリックします。
CA を選択し、CA の名前の下のフォルダーを展開します。
[失効した証明書] フォルダーを右クリックします。
[すべてのタスク] をクリックし、[次へ] をクリックします。
また、コマンド プロンプトから CRL を生成し、公開することもできます。
Certutil コマンド ライン ツールを使用して CRL を公開するには、次の手順を実行します。
CA をホストしているコンピューター上で、[スタート] をクリックし、「cmd」と入力してから、Enter キーを押します。
「certutil -CRL」と入力し、Enter キーを押します。
特定された CRL を利用できないけれども CA のローカル ディレクトリ内に有効な CRL が存在する場合は、その CA が CRL 、配布ポイントへ接続可能なことを確認し、もう一度 CRL を生成および公開する手順を使用します。
CRL は、以下のコマンドを使用して Active Directory ドメイン サービス (AD DS) に手動で公開することもできます。
certutil -dspublish"<crlname.crl>" ldap:///CN=<CA name>,CN=<CA hostname>,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=<contoso>,DC=<com>?certificateRevocationList?base?objectClass=cRLDistributionPoint
crlname.crl は CRL ファイルの名前に、<CA name> は使用している CA の名前に、<CA hostname> は CA が実行されているホストの名前に置き換えます。また、<contoso> と <com> は、使用している Active Directory ドメインの名前空間に置き換えます。
構成済の CRL 配布ポイントを確認する
構成済のすべての CRL 配布ポイントを確認し、公開が正常に完了し、新しい CRL がネットワーク上で利用できるようになっていることを確認します。
この手順を実行するには、CA 管理権限を付与されているか、または適切な権限を委任されている必要があります。
証明機関スナップインを使用して構成済の CRL 配布ポイントを確認するには、次の手順を実行します。
CA をホストしているコンピューター上で、[スタート] をクリックし、[管理ツール] をポイントし、[証明機関] をクリックします。
CA の名前を右クリックしてから、[プロパティ] をクリックします。
[拡張子] タブをクリックします。
構成済の CRL 配布ポイントを見直し、名前が有効であることを確認します。
Certutil を使用して構成済の CRL 配布ポイントの URL を確認するには、次の手順を実行します。
CA でコマンド プロンプト ウィンドウを開きます。
「certutil -getreg ca\crlpublicationurls」と入力し、Enter キーを押します。
構成済の CRL 配布ポイントを見直し、名前が有効であることを確認します。
CA で失敗した要求のキューを確認する
この手順を実行するには、CA 管理権限を付与されているか、または適切な権限を委任されている必要があります。
証明機関スナップインを使用して CA で失敗した要求のキューを確認するには、次の手順を実行します。
CA をホストしているコンピューター上で、[スタート] をクリックし、[管理ツール] をポイントしてから [証明機関] をクリックします。
[失敗した要求] をクリックします。
イベント発生時またはそれと近い時間に送信された、失敗した要求を探し、要求のディスポジション メッセージ、要求の状態コード、および要求者名などの列で追加の診断情報を確認します。
Certutil を使用して失敗した要求を確認するには、次の手順を実行します。
CA をホストしているコンピューター上で、[スタート] をクリックし、「cmd」と入力してから、Enter キーを押します。
「certutil -view LogFail」と入力し、Enter キーを押します。
「certutil -view -restrict requestID="<nnn>"」と入力し、ENTER を押します。<nnn> を、LogFail コマンドの出力で失敗した要求のうち 1 つの要求 ID に置き換えます。
AD DS の接続性の確認
AD DS への Active Directory 証明書サービス (AD CS) の接続を確認するには :
CA 上でコマンド プロンプト ウィンドウを開きます。
「ping <server_FQDN>」と入力します。ここで server_FQDN はドメイン コントローラーの完全修飾ドメイン名 (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>」と入力し、Enter キーを押します。ここで IP_address はドメイン コントローラーの IP アドレスです。
IP アドレスを使用した場合はドメイン コントローラーの 接続が成功するけれども、FQDN では失敗する場合は、ドメイン ネーム システム (DNS) ホスト名解決に問題がある可能性があることを示しています。IP アドレスを使用したドメイン コントローラーの接続が失敗する場合は、ネットワーク接続、ファイアウォール、または IPsec の構成に問題がある可能性があることを示しています。
その他の登録機関証明書の発行
これらの手順を実行するには、CA をホストしているコンピューター上のローカルの Administrators グループのメンバーであるか、適切な権限が委任されている必要があります。
その他の登録機関証明書を発行するには、次の手順を実行します。
CA をホストしているコンピューター上で、[スタート] をクリックし、「certtmpl.msc」と入力してから、Enter キーを押します。
[詳細] ペイン内で、登録機関証明書テンプレートを右クリックしてから、[プロパティ] をクリックします。
[セキュリティ] タブ上で、登録機関証明書を発行するユーザーまたはグループの名前を追加します。
グループまたはユーザー名で、新しいオブジェクトのいずれかをクリックし、次に [許可] 列の下の [オブジェクト名の許可] で [読んで登録する] チェックボックスを選択します。
前の手順を、新しいオブジェクトごとに繰り返し、[OK] をクリックします。
[スタート] をクリックし、[管理ツール] をポイントして、[証明機関] をクリックします。
CA の名前をダブルクリックします。
[証明書テンプレート] コンテナーを右クリックしてから、[新規]、[発行する証明書テンプレート] の順にクリックします。
証明書テンプレートを選択し、[OK] をクリックします。
証明書テンプレートの署名の要件を変更する
この手順を実行するには、CA 管理権限を付与されているか、または適切な権限を委任されている必要があります。
証明書テンプレートの署名の要件を変更するには、次の手順を実行します。
CA をホストしているコンピューター上で、[スタート] をクリックし、「certtmpl.msc」と入力してから、Enter キーを押します。
[詳細] ペイン内で、変更する証明書テンプレートを右クリックし、[プロパティ] をクリックします。
[発行の要件] タブをクリックします。
承認済署名のこの番号の下で、使用する登録機関の署名の番号を入力します。
前の手順を、新しいオブジェクトごとに繰り返し、[OK] をクリックします。
[スタート] をクリックし、[管理ツール] をポイントして、[証明機関] をクリックします。
CA の名前をダブルクリックします。
[証明書テンプレート] コンテナーを右クリックしてから、[新規]、[発行する証明書テンプレート] の順にクリックします。
証明書テンプレートを選択し、[OK] をクリックします。
証明書要求の処理が適切に行われていることを確認するには:
[スタート] をクリックし、「certmgr.msc」と入力して Enter キーを押します。
[ユーザー アカウント制御] ダイアログ ボックスが表示されたら、表示された操作が正しいことを確認し、[続行] をクリックします。
コンソール ツリー内で [個人用] をダブルクリックしてから、[証明書] をクリックします。
[操作] メニュー上で、[すべてのタスク] をポイントし、[新しい証明書の要求] をクリックし、証明書の登録ウィザードを開始します。
このウィザードを使って、利用可能な証明書の種類の証明書要求を作成し、送信します。
「証明書インストールの結果」で、登録が正常に完了し、エラーが報告されていないことを確認します。[詳細] をクリックし、証明書の詳細な情報を表示することもできます。
Target | Microsoft.Windows.CertificateServices.CARole.2016 |
Category | EventCollection |
Enabled | True |
Event_ID | 53 |
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.53" 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">53</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>