信頼されたドメインの Active Directory で証明書を発行する証明機関の構成

この記事では、証明機関 (CA) として子ドメインのユーザーが証明書を要求するときに、発行された証明書が Active Directory で公開されていない問題を解決します。

適用対象:  Windows Server 2012R2
元の KB 番号:   281271

現象

次のシナリオでは、CA と同じドメインのユーザーが証明書を要求すると、発行された証明書が Active Directory に発行されます。 ユーザーが子ドメインの場合、このプロセスは成功しない。 また、CA と同じドメインのユーザーが証明書を要求すると、発行された証明書が Active Directory で公開されない場合があります。

シナリオ 1

このシナリオでは、次の条件に当てはまる場合、CA は発行された証明書を子ドメインのユーザーの DS オブジェクトに発行しません。

  • ユーザーは、親ドメインと子ドメインを持つ 2 レベルのドメイン階層にいます。
  • CA Enterpriseは親ドメインにあり、ユーザーは子ドメインにいます。
  • 子ドメインのユーザーが親 CA に登録されます。

親ドメインと子ドメインを持つ 2 レベルのドメイン階層では、Enterprise CA は親ドメインに位置します。 また、ユーザーは子ドメイン内にいます。 子ドメインのユーザーは親 CA に登録され、CA は発行された証明書を子ドメインのユーザーの DS オブジェクトに発行します。

さらに、次のイベントが CA サーバーに記録されます。

ログ名: アプリケーション
ソース: Microsoft-Windows-CertificationAuthority
イベント ID: 80
タスク カテゴリ: なし
レベル: 警告
キーワード:
ユーザー: SYSTEM
コンピューター: CA。CONTOSO.COM
説明:
Active Directory 証明書サービスは、要求 XXX の証明書をサーバー DC.CHILD の次の場所に発行できません。CONTOSO.COM: CN=CHILDSRV,CN=Computers,DC=CHILD,DC=CONTOSO,DC=COM。 操作を実行するためのアクセス権が不十分です。 0x80072098 (WIN32: 8344 ERROR_DS_INSUFF_ACCESS_RIGHTS)。
ldap: 0x32: 00002098: SecErr: DSID-XXXXXXXX, 問題 4003 (INSUFF_ACCESS_RIGHTS), データ 0

シナリオ 2

次のような状況で問題が発生します。

  • ユーザーは、単一レベルのドメインまたは親ドメイン内にいます。
  • CA Enterpriseは親ドメイン上に位置します。
  • ドメイン コントローラーには、修正プログラム がインストール327825 はありません。
  • ユーザーは、単一レベルまたは親ドメインのどちらかで、単一レベルの証明機関または親証明機関に登録します。

このシナリオでは、証明機関は発行された証明書を単一レベルドメインまたは親ドメインのユーザーのドメイン サーバー オブジェクトに発行しません。

原因

  • シナリオ 1 : 2レベルのドメイン階層の場合

    子ドメインのユーザーには、登録するための適切なアクセス許可が付与されています。 その場合でも、CA には Active Directory に証明書を発行するためのアクセス許可が付与されません。

    既定では、CA と同じドメインのドメイン ユーザーだけが登録アクセス許可を持っています。

    既定では、CA にはドメイン内のユーザーに対して次の必要なアクセス許可が付与されています。

    • 読み取り userCertificate .

    • 書き込み userCertificate .

      親ドメインの CA には、子ドメイン内のユーザーの userCertificate プロパティに対するアクセス許可が付与されています。

  • シナリオ 2:単一レベルドメインまたは親ドメインの場合

    既定では、Windows AdminSDHolder オブジェクトは、AdminSDHolder プロセスでカバーされるユーザー アカウントに必要なアクセス許可を Cert Publishers グループに付与されません。 次の一覧には、保護されたユーザー アカウント グループが含Windows。

    • エンタープライズの管理者

    • Schema Admins

    • Domain Admins

    • 管理者

      修正プログラムKB327825を適用すると、ユーザー アカウント グループの次のWindowsグループが保護されます。

    • 管理者

    • アカウント演算子

    • サーバー演算子

    • 印刷演算子

    • Backup Operators

    • Domain Admins

    • Schema Admins

    • エンタープライズの管理者

    • Cert Publishers

解決方法

シナリオに応じて、次の解決策を試してください。

シナリオ 1 : 2レベルのドメイン階層の場合

子ドメイン ユーザーが証明書を取得し、Active Directory に発行するには、次の手順を実行します。

  1. CA のテンプレートに対するアクセス許可を設定して、登録要求を許可します。 CA が証明書を発行するためのユーザー オブジェクトのアクセス許可を設定します。 AdminSDHolder を変更して、管理者であるユーザーにユーザー オブジェクトのアクセス許可をプッシュします。

  2. CA が証明書を発行するためのユーザー オブジェクトのアクセス許可を設定します。 AdminSDHolder を変更して、管理者であるユーザーにユーザー オブジェクトのアクセス許可をプッシュします。

  3. AdminSDHolder を変更して、管理者であるユーザーにユーザー オブジェクトのアクセス許可をプッシュします。

注意

最初に、サーバー CD-ROM からサポート ツールWindows ProfessionalインストールWindowsインストールする必要があります。

子ドメイン ユーザーが証明書を取得し、Active Directory に発行するを有効にする

  1. CA に対するアクセス許可を設定して、子ドメイン内のユーザーが証明書を要求できます。 既定では、その場所に配置する必要があります。

    1. 証明機関スナップインを開き、CA を右クリックし、[プロパティ] を 選択します
    2. [セキュリティ ] タブ で、[認証されたユーザー] グループが証明書の要求を許可されている必要があります。
  2. 該当する証明書テンプレートに対するアクセス許可を設定して、子ドメイン内のユーザーが登録を許可します。

    注意

    ドメイン管理者権限を持つルート ドメインにログオンする必要があります。

    1. Active Directory サイトとサービス スナップインを開きます。
    2. [表示 ] を 選択し、[サービス ノード の表示] を選択します
    3. [サービス ノード ] フォルダーを展開 し、[ 公開キー サービス] を展開 し、[証明書テンプレート] を選択します
    4. [詳細 ] ウィンドウ で、目的のテンプレートまたはテンプレートを選択します。 たとえば、ユーザー証明書テンプレートを右クリック 、[プロパティ] を 選択します
    5. [セキュリティ ] タブ で、認証されたユーザーなどの目的のグループに登録アクセス許可を付与します。
  3. 証明書を Active Directory に発行する CA Exit モジュールを構成します。

    1. 証明機関スナップインで、CA を右クリックし、[プロパティ] を 選択します
    2. [モジュールの 終了] タブで 、[構成] を 選択します
    3. Exit モジュールのプロパティで、[Active Directory で発行する証明書を許可する ] ボックスを選択 します。

    子ドメイン コントローラーで、次の設定を行います。

    注意

    サーバー Windowsでは、Cert Publishers グループはドメイン グローバル グループです。 Cert Publishers グループを各子ドメインに手動で追加する必要があります。

    子ドメイン ユーザーが証明書を取得し、サーバー ドメインで公開Windowsできます。 これを行うには、グループの種類を [ドメイン ローカル] に変更し、親ドメインから CA サーバーを含める必要があります。 この手順では、新しくインストールされたサーバー ドメインに存在するのと同Windows作成します。 ユーザー インターフェイス (UI) では、グループの種類を変更できない。 ただし、次のコマンドを使用して、Cert Publishers グループをドメイン グローバル グループからドメイン ローカル dsmod グループに変更できます。

    dsmod group Group Distinguished Name -scope l
    

    場合によっては、groupType をグローバル からドメイン ローカル グループに直接変更することはできません。 この場合、グローバル グループをユニバーサル グループに変更し、ユニバーサル グループをドメイン ローカル グループに変更する必要があります。 そのために、以下の手順に従ってください。

    1. 次のコマンドを入力し、Enter キーを押します。

      dsmod group Group Distinguished Name -scope u
      

      このコマンドは、グローバル グループをユニバーサル グループに変更します。

    2. 次のコマンドを入力し、Enter キーを押します。

      dsmod group Group Distinguished Name -scope l
      

      このコマンドは、ユニバーサル グループをドメイン ローカル グループに変更します。

シナリオ 2:単一レベルドメインまたは親ドメインの場合

単一レベルのドメイン コントローラーまたは親ドメイン コントローラーで、二重引用符を付け、次の 2 つのコマンドを実行します。

dsacls "cn=adminsdholder,cn=system, dc=<your domain>,dc=<com>" /G "<CA's domain> \Cert Publishers:WP;userCertificate"
dsacls "cn=adminsdholder,cn=system, dc=<your domain>,dc=<com>" /G "<CA's domain> \Cert Publishers:RP;userCertificate"

dc= <your domain> ,dc= <com> は、子ドメインの識別名 (DN) です。 CA <CA's domain> が保存されているドメイン名はここで指定します。

状態

Microsoft は、このサーバーで問題が発生Windowsしました。

詳細

子ドメインのユーザーが登録に成功しない場合、CA アプリケーション イベント ログに次のエラーが生成されます。

イベントの種類: 警告
イベント ソース: CertSvc
イベント カテゴリ: なし
イベント ID: 53
日付: 08/14/2000
時刻: 05:13:00
ユーザー: N/A
コンピューター: <Root CA name>
説明:
Access が拒否されたため <request #> 、証明書サービスは要求を拒否しました。
0x80070005 (WIN32: 5)。 要求は (不明な件名) でした。 追加情報: ポリシー モジュールによって拒否されました

ユーザーが登録できるよう ACL が設定されているが、CA がユーザーの Active Directory に発行するアクセス許可を持たなかった場合、CA アプリケーション イベント ログに次のエラーが生成されます。

イベントの種類: エラー
イベント ソース: CertSvc
イベント カテゴリ: なし
イベント ID: 46
日付: 08/14/2000
時刻: 05:13:00
ユーザー: N/A
コンピューター: <Root CA name>
説明:
"Enterpriseスタンドアロン出口モジュール" Exit Module "Notify" メソッドがエラーを返しました。 アクセスが拒否されました。 返される状態コードは、0x80070005 (5) です。 証明機関は、Child\User の証明書をディレクトリ サービスに発行できません。 アクセスが拒否されました。
(0x80070005)