証明書サービスは CA 証明書を Active Directory に追加できません
Active Directory 証明書サービス (AD CS) では、Active Directory ドメイン サービス (AD DS) の特定のオブジェクトに対する、少なくとも読み取りアクセス、書き込みアクセス (一部のインスタンス) が必要です。これらの Active Directory オブジェクトにアクセスできないと、AD CS を起動できません。
AD CS を有効にして、CA 証明書を Active Directory ドメイン サービスに追加する
Active Directory 証明書サービス (AD CS) を有効にして、イベント ログ メッセージで特定された証明機関 (CA) 証明書を Active Directory ドメイン サービス (AD DS) に追加するには、以下の手順を実行します。
CA が、必須 AD DS コンテナーおよびオブジェクトに対するアクセス許可を持っていることを確認します。
CA 証明書が AIA コンテナー内に存在しているかどうかを判別します。
存在しない場合は、CA 証明書を AIA コンテナーに手動で公開します。
この手順を実行するには、Domain Admins のメンバーであるか、適切な権限を委任されている必要があります。
重要な AD DS コンテナーおよびオブジェクトの権限の確認
CA が AD DSコンテナー上およびこれらのコンテナー内のオブジェクトで権限が必要であることを確認するには:
ドメイン コントローラーで [スタート] をクリックし、[管理ツール] をポイントして [Active Directory サイトとサービス] をクリックします。
[Active Directory サイトとサービス] の [domainname] をクリックします ([domainname] にはドメイン名が入ります) 。
[表示] メニュー上で、[サービス ノードの表示] をクリックします。
[Services] をダブルクリックし、[Public Key Services] (公開キー サービス) をダブルクリックし、次に表示される各コンテナーを右クリックするか、またはそのコンテナー内で表示されるオブジェクトを右クリックするかして、[プロパティ] をクリックします。
[セキュリティ] タブ上で、必須の権限を確認します。
次はすべて、CA をホストしているコンピューター上で必要な Active Directory の権限です。これらの権限の一部は、Cert Publishers グループ内のメンバーシップ経由で実現されます。
登録サービス コンテナー。CA コンピューターは独自のプロジェクトへの読み取り/書き込みアクセス権を持っています。
AIA コンテナー。Cert Publishers グループは AIA コンテナー上でフル コントロール アクセス権を所有し、CA コンピューターは AIA コンテナー内の独自のオブジェクト上でフル コントロール アクセス権を所有します。
CDP コンテナー。Cert Publishers グループは CDP コンテナーの下の各 CA コンテナーへのフル コントロール アクセス権を持ち、CA コンピューターは 独自のコンテナー内にあるすべての証明書失効リスト (CRL) オブジェクトへのフル コントロール アクセス権を持ちます。
証明機関コンテナー。Cert Publishers グループは独自のコンテナー内のオブジェクト上へのフル コントロール アクセス権を所有しています。
証明書テンプレート コンテナー。Enterprise Admins および Domain Admins グループ (CA コンピューター以外) はこのコンテナーおよびコンテナー内のほとんどのオブジェクトへのフル コントロール アクセス権または読み取り/書き込みアクセス権を所有しています。
KRA コンテナー。CA コンピューターは独自のプロジェクトへのフル コントロール アクセス権を持っています。
OID コンテナー。Enterprise Admins および Domain Admins グループ (CA コンピューター以外) はこのコンテナー、およびこのコンテナーとコンテナー内のオブジェクトへのフル コントロール アクセス権または読み取り/書き込みアクセス権を所有しています。
NTAuthCertificates オブジェクト。Enterprise Admins および Domain Admins グループ (CA コンピューター以外) はフル コントロール アクセス権または読み取り/書き込みアクセス権を持っています。
ドメイン コンピューターおよびドメイン ユーザー コンテナー。Cert Publishers グループは、AD CS が展開されているフォレスト内の各ユーザーおよびコンピューター オブジェクト上の userCertificate プロパティの読み取り/書き込みアクセス権を所有しています。
これらの手順を実行するには、CA 管理権限を付与されているか、または適切な権限を委任されている必要があります。
CA 証明書が AIA コンテナー内に存在しているかどうかを判別します
AD DS 内の AIA コンテナーの内容を表示するには、以下の手順を実行します。
ドメイン コントローラー上で、[スタート] をクリックし、「cmd」と入力し、Enter キーを押します。
「certutil -cainfo」と入力し、Enter キーを押します。
コマンドの出力内で、「校正された短い名前」の後に表示されるプロパティを書き留めます。
次のコマンドを入力し、ENTER キーを押します。
certutil -viewstore ldap:///CN=<MyCA>,CN=AIA,CN=Public Key Services,CN=Services,CN=Configuration,DC=<contoso>,DC=<com>?cACertificate?base?objectclass=certificationAuthority
MyCA を前のコマンドからの [校正された短い名前] プロパティに置き換えて、contoso および com を Active Directory ルート ドメインの LDAP (ライトウェイト ディレクトリ アクセス プロトコル) 識別名に置き換えます。
CA 証明書が AIA コンテナーに表示されず、必要なアクセス許可を持っている場合は、次の手順を使用して CA 証明書を公開します。
CA 証明書を手動で公開する
CA 証明書を AD DS に手動で公開するには、以下の手順を実行します。
CA 上で [スタート] をクリックし、「cmd」と入力し、Enter キーを押します。
ルート CA 証明書については、次のコマンドを入力し、Enter キーを押します: certutil [-f] -dspublish <CAcert.cer> RootCA
下位の CA 証明書については、次のコマンドを入力し、Enter キーを押します: certutil [-f] -dspublish <CAcert.cer> SubCA
<CAcert.cer> を証明書ファイルの名前に置き換えます。オブジェクトが削除されていた場合は、"-f" フラグによって再作成されます。
CA と Active Directory ドメイン サービス (AD DS) の間の接続を確認するには、次の手順を実行します。
CA をホストしているコンピューター上でコマンド プロンプト ウィンドウを開きます。
「nltest /sc_verify: [domainname]」と入力し、Enter キーを押します。
次の手順を使用し必須 AD DS コンテナーおよびオブジェクトのアクセス許可を確認します。
[domainname] を CA のインストール先となる名前空間の名前で置換します。
重要な AD DS コンテナーおよびオブジェクトの権限の確認
この手順を実行するには、Domain Admins のメンバーであるか、適切な権限を委任されている必要があります。
CA が、AD DS コンテナーおよびこれらのコンテナー内のオブジェクトに対する必要なアクセス許可を所有していることを確認するには、次の手順を実行します。
ドメイン コントローラーで [スタート] をクリックし、[管理ツール] をポイントして [Active Directory サイトとサービス] をクリックします。
[Active Directory サイトとサービス] の [domainname] をクリックします ([domainname] にはドメイン名が入ります) 。
[表示] メニュー上で、[サービス ノードの表示] をクリックします。
[Services] をダブルクリックし、[Public Key Services] (公開キー サービス) をダブルクリックし、次に表示される各コンテナーを右クリックするか、またはそのコンテナー内で表示されるオブジェクトを右クリックするかして、[プロパティ] をクリックします。
[セキュリティ] タブ上で、必須の権限を確認します。
次はすべて、CA をホストしているコンピューター上で必要な Active Directory の権限です。これらの権限の一部は、Cert Publishers グループ内のメンバーシップ経由で実現されます。
登録サービス コンテナー。CA コンピューターは独自のプロジェクトへの読み取り/書き込みアクセス権を持っています。
AIA コンテナー。Cert Publishers グループは AIA コンテナー上でフル コントロール アクセス権を所有し、CA コンピューターは AIA コンテナー内の独自のオブジェクト上でフル コントロール アクセス権を所有します。
CDP コンテナー。Cert Publishers グループは CDP コンテナーの下の各 CA コンテナーへのフル コントロール アクセス権を持ち、CA コンピューターは 独自のコンテナー内にあるすべての証明書失効リスト (CRL) オブジェクトへのフル コントロール アクセス権を持ちます。
証明機関コンテナー。Cert Publishers グループは独自のコンテナー内のオブジェクト上へのフル コントロール アクセス権を所有しています。
証明書テンプレート コンテナー。Enterprise Admins および Domain Admins グループ (CA コンピューター以外) はこのコンテナーおよびコンテナー内のほとんどのオブジェクトへのフル コントロール アクセス権または読み取り/書き込みアクセス権を所有しています。
KRA コンテナー。CA コンピューターは独自のプロジェクトへのフル コントロール アクセス権を持っています。
OID コンテナー。Enterprise Admins および Domain Admins グループ (CA コンピューター以外) はこのコンテナー、およびこのコンテナーとコンテナー内のオブジェクトへのフル コントロール アクセス権または読み取り/書き込みアクセス権を所有しています。
NTAuthCertificates オブジェクト。Enterprise Admins および Domain Admins グループ (CA コンピューター以外) はフル コントロール アクセス権または読み取り/書き込みアクセス権を持っています。
ドメイン コンピューターおよびドメイン ユーザー コンテナー。Cert Publishers グループは、AD CS が展開されているフォレスト内の各ユーザーおよびコンピューター オブジェクト上の userCertificate プロパティの読み取り/書き込みアクセス権を所有しています。
Target | Microsoft.Windows.CertificateServices.CARole.2016 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 106 | ||
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.106" 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">106</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="AlertMessageID4f12f8d124ed4ece99544c9a9730fa37"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>