次の方法で共有


カスタム ポートでの証明書キーベースの更新用に証明書登録 Web サービスを構成する

執筆者: Jitesh thakur、Meera Mohideen、Windows グループのテクニカル アドバイザー。 Windows グループを使用した Ankit Tyagi サポートエンジニア

Summary

この記事では、CEP および CES の自動更新機能を利用するための証明書キーベースの更新に443以外のカスタム ポートに証明書の登録ポリシー Web サービス (CEP) と証明書の登録 Web サービス (CES) を実装する手順について説明します。

この記事では、CEP と CES の動作、およびセットアップ ガイドラインについても説明します。

Note

この記事に含まれるワークフローは、特定のシナリオに適用されます。 同じワークフローが、状況によっては機能しない場合があります。 ただし、原則は変わりません。

免責事項: このセットアップは、CEP および CES サーバーの既定の HTTPS 通信にポート 443 を使用しない特定の要件に対して作成されます。 この設定は可能ですが、サポートが制限されています。 提供されている Web サーバー構成との違いが少なければ少ないほどスムーズに顧客サービスやサポートをご提供できます。

Scenario

この例では、手順は次の構成を使用する環境に基づいています:

  • Active Directory 証明書サービス (AD CS) 公開キー基盤 (PKI) を持つ Contoso.com フォレスト。

  • サービス アカウントで実行されている 1 台のサーバー上に構成されている 2 つの CEP/CES インスタンス。 1 つのインスタンスでは、最初の登録にユーザー名とパスワードを使用します。 もう 1 つは、書き換え専用モードでのキーベースの書き換えに証明書ベースの認証を使用する方法です。

  • ユーザーは、ユーザー名とパスワードの資格情報を使用してコンピューターの証明書を登録するワークグループまたはドメインに参加していないコンピューターを持っています。

  • HTTPS を介した CEP および CES への接続は、49999 などのカスタムポートで行われます。 (このポートは動的ポート範囲から選択され、他のサービスが静的ポートとして使用することはありません)

  • 証明書の有効期間が終了すると、コンピューターは証明書ベースの CES キーベースの書き換えを使用して、同じチャネルで証明書を更新します。

deployment

構成手順

Overview

  1. キーベースの書き換え用にテンプレートを構成します。

  2. 前提条件として、ユーザー名とパスワードの認証用に CEP および CES サーバーを構成します。 この環境では、インスタンスを "CEPCES01" と呼びます。

  3. 同じサーバー上で証明書ベースの認証に PowerShell を使用して、別の CEP および CES インスタンスを構成します。 CES インスタンスは、サービス アカウントを使用します。

    この環境では、インスタンスを "CEPCES02" と呼びます。 使用されるサービスアカウントは "cepcessvc" です。

  4. クライアント側の設定を構成します。

Configuration

このセクションでは、初期登録を構成する手順について説明します。

Note

CES が機能するように、ユーザー サービス アカウント、MSA、または GMSA を構成することもできます。

前提条件として、ユーザー名とパスワードの認証を使用して、サーバーで CEP および CES を構成する必要があります。

キーベースの書き換え用にテンプレートを構成します

既存のコンピューター テンプレートを複製し、テンプレートの以下の設定を構成することができます:

  1. 証明書テンプレートの [サブジェクト名] タブで、[要求で使用する] と [動登録更新要求に対して既存の証明書のサブジェクト情報を使用する] オプションが選択されていることを確認します。 新しいテンプレート

  2. [ 発行要件 ] タブに切り替え、[ CA 証明書マネージャーの承認 ] チェック ボックスをオンにします。 発行要件

  3. このテンプレートの cepcessvc サービス アカウントに読み取りと登録のアクセス許可を割り当てます。

  4. CA で新しいテンプレートを発行します。

Note

互換性が Windows Server 2016 以降のバージョンに設定されている場合、テンプレートが表示されないという既知の問題があるため、テンプレートの互換性設定が Windows Server 2012 R2 に設定されていることを確認してください。 詳細については、「Windows Server 2016 以降に基づいた CA または CEP サーバーから Windows Server 2016 CA と互換性のある証明書テンプレートを選択できません。」を参照してください。

CEPCES01 インスタンスを構成する

手順 1: インスタンスをインストールする

CEPCES01 インスタンスをインストールするには、次のいずれかの方法を使用します。

方法 1

ユーザー名とパスワードの認証に CEP と CES を有効にするための詳細な手順については、次の記事を参照してください:

証明書の登録ポリシー Web サービスのガイド

証明書の登録 Web サービスのガイド

Note

CEP と CES の両方のインスタンスのユーザー名とパスワードの認証を構成する場合は、[キー ベースの書き換えを有効にする] オプションを選択していないことを確認してください。

方法 2

次の PowerShell コマンドレットを使用して、CEP インスタンスと CES インスタンスをインストールできます:

Import-Module ServerManager
Add-WindowsFeature Adcs-Enroll-Web-Pol
Add-WindowsFeature Adcs-Enroll-Web-Svc
Install-AdcsEnrollmentPolicyWebService -AuthenticationType Username -SSLCertThumbprint "sslCertThumbPrint"

このコマンドは、ユーザー名とパスワードを認証に使用することを指定することによって、証明書の登録ポリシー Web サービス (CEP) をインストールします。

Note

このコマンドでは、 <SSLCertThumbPrint> は、IIS をバインドする証明書の拇印です。

Install-AdcsEnrollmentWebService -ApplicationPoolIdentity -CAConfig "CA1.contoso.com\contoso-CA1-CA" -SSLCertThumbprint "sslCertThumbPrint" -AuthenticationType Username

このコマンドは、証明書登録 Web サービス (CES) をインストールして、CA1.contoso.com のコンピューター 名とcontoso-CA1-CA の CA 共通名に証明機関を使用します。 CES の ID は、既定のアプリケーションプール ID として指定されます。 認証の種類は ユーザー名です。 SSLCertThumbPrint は、IIS をバインドする証明書の拇印です。

手順2: インターネット インフォメーション サービス (IIS) マネージャー コンソールを確認

インストールが正常に完了すると、インターネット インフォメーション サービス (IIS) マネージャー コンソールに次のように表示されます。 インターネット インフォメーション サービス マネージャー コンソールを示すスクリーンショット。

[既定の Web サイト] で、[ADPolicyProvider_CEP_UsernamePassword] を選択し、[アプリケーション設定] を開きます。 IDURI をメモします。

管理用の フレンドリ名 を追加できます。

CEPCES02 インスタンスを構成する

手順 1: キー ベースの書き換えのための CEP と CES を同じサーバーにインストールします。

PowerShell で次のコマンドを実行します。

Install-AdcsEnrollmentPolicyWebService -AuthenticationType Certificate -SSLCertThumbprint "sslCertThumbPrint" -KeyBasedRenewal

このコマンドにより、証明書の登録ポリシー Web サービス (CEP) をインストールし、認証に証明書を使用することを指定します。

Note

このコマンドでは、 <SSLCertThumbPrint> は、IIS のバインドに使用される証明書のサムプリントです。

キー ベースの書き換えにより、証明書クライアントは既存の証明書のキーを使用して認証を行うことで、証明書を更新できます。 キーベースの書き換えモードでは、サービスはキー ベースの書き換えに設定されている証明書テンプレートのみを返します。

Install-AdcsEnrollmentWebService -CAConfig "CA1.contoso.com\contoso-CA1-CA" -SSLCertThumbprint "sslCertThumbPrint" -AuthenticationType Certificate -ServiceAccountName "Contoso\cepcessvc" -ServiceAccountPassword (read-host "Set user password" -assecurestring) -RenewalOnly -AllowKeyBasedRenewal

このコマンドは、証明書登録 Web サービス (CES) をインストールして、CA1.contoso.com のコンピューター 名とcontoso-CA1-CA の CA 共通名に証明機関を使用します。

このコマンドでは、証明書登録 Web サービスの ID を cepcessvc サービス アカウントとして指定します。 認証の種類は 証明書です。 SSLCertThumbPrint は、IIS をバインドする証明書の拇印です。

RenewalOnly コマンドレットを使用すると、CES を更新専用モードで実行できます。 AllowKeyBasedRenewal コマンドレットは、CES が登録サーバーのキー ベースの更新要求を受け入れることも指定します。 これらは、セキュリティ プリンシパルに直接マップされない認証用の有効なクライアント証明書です。

Note

サービス アカウントは、 サーバー上IIS_IUSRS グループの一部である必要があります。

手順 2. IIS マネージャー コンソールを確認する

インストールが正常に完了すると、IIS マネージャー コンソールに次のように表示されます。 IIS マネージャー

[既定の Web サイト] で [KeyBasedRenewal_ADPolicyProvider_CEP_Certificate] を選択し、[アプリケーションの設定] を開きますIDURI を書き留めます。 管理用の フレンドリ名 を追加できます。

Note

インスタンスが新しいサーバーにインストールされている場合は、ID を確認して、CEPCES01 インスタンスで生成されたものと同じ ID であることを確認してください。 値が異なる場合は、値を直接コピーして貼り付けることができます。

証明書の登録 Web サービスの構成の完了

CEP および CES の機能のために証明書を登録できるようにするには、Active Directory でワークグループのコンピューター アカウントを構成してから、サービス アカウントで制約付き委任を構成する必要があります。

手順 1: Active Directory でワークグループ コンピューターのコンピューター アカウントを作成する

このアカウントは、キーベースの書き換えに対する認証と、証明書テンプレートの Publish to Active Directory オプションに使用されます。

Note

クライアント マシンをドメインに参加させる必要はありません。

New オブジェクト

手順 2: 制約付き委任用にサービス アカウントを構成する (S4U2Self)

次の PowerShell コマンドを実行して、制約付き委任 (S4U2Self または任意の認証プロトコル) を有効にします:

Get-ADUser -Identity cepcessvc | Set-ADAccountControl -TrustedToAuthForDelegation $True
Set-ADUser -Identity cepcessvc -Add @{'msDS-AllowedToDelegateTo'=@('HOST/CA1.contoso.com','RPCSS/CA1.contoso.com')}

Note

このコマンドでは、 <cepcessvc> がサービス アカウント < で、CA1.contoso.com > が証明機関です。

Important

同じジョブを実行するために制約付き委任を使用しているため、この構成では CA の RENEWALONBEHALOF フラグを有効にしません。 これにより、CA のセキュリティにサービス アカウントのアクセス許可が追加されないようにすることができます。

手順 3: IIS Web サーバーでカスタム ポートを構成する
  1. IIS マネージャー コンソールで、[既定の Web サイト] を選択します。

  2. [操作] ウィンドウで、[サイトバインドの編集] を選択します。

  3. 既定のポート設定を 443 からカスタム ポートに変更します。 例のスクリーンショットは、ポートの設定が 49999 であることを示しています。 ポートの変更

手順 4: Active Directory で CA 登録サービス オブジェクトを編集する
  1. ドメイン コントローラーで、adsiedit.msc を開きます。

  2. 構成パーティションに 接続し、CA 登録サービスオブジェクトに移動します:

    CN = ENTCA、CN = Enrollment Services、CN = Public Key Services、CN = Services、CN = Configuration、DC = contoso、DC = com

  3. CA オブジェクトを右クリックして編集します。 アプリケーション設定で見つかった CEP および CES サーバー URI でカスタム ポートを使用して 、msPKI-Enrollment-Servers 属性を変更します。 例えば次が挙げられます。

    140https://cepces.contoso.com:49999/ENTCA_CES_UsernamePassword/service.svc/CES0
    181https://cepces.contoso.com:49999/ENTCA_CES_Certificate/service.svc/CES1
    

    ADSI 編集

クライアント コンピューターの構成

クライアント コンピューターで、登録ポリシーと自動登録ポリシーを設定します。 この手順を実行するには、以下のステップに従ってください。

  1. [スタート>実行] を選択し、「gpedit.msc」と入力します。

  2. [コンピューターの構成>Windows の設定>セキュリティ設定] に移動し、[公開キー ポリシー] をクリックします。

  3. 次のスクリーンショットの設定と一致するように、[証明書サービスクライアント-自動登録] ポリシー を有効にします。 証明書グループ ポリシー

  4. 証明書サービスクライアント証明書の登録ポリシーを有効にします。

    a. [ 追加] をクリックして登録ポリシーを追加し、ADSI で編集した UsernamePassword で CEP URI を入力します。

    b. [認証の種類] で、[ユーザー名/パスワード] を選択します。

    c. 優先度 を 10 に設定し、ポリシー サーバーを検証します。 優先度を設定する場所を示すスクリーンショット。

    Note

    ポート番号が URI に追加されていること、およびファイアウォールで許可されていることを確認してください。

  5. コンピューターの最初の証明書を certlm.msc で登録します。 証明書登録ポリシーを選択する場所を示すスクリーンショット。

    KBR テンプレートを選択し、証明書を登録します。 KBR テンプレートを選択する場所を示すスクリーンショット。

  6. gpedit.msc をもう一度開きます。 証明書サービスクライアント-証明書の登録ポリシー を編集し、キー ベースの書き換え登録ポリシーを追加します:

    a. [ 追加] をクリックし、ADSI で編集した 証明書 を含む CEP URI を入力します。

    b. 優先度 1 を設定し、ポリシー サーバーを検証します。 最初に登録した証明書を認証して選択するよう求められます。

    登録ポリシー

Note

キー ベースの書き換え登録ポリシーの優先順位の値が、ユーザー名パスワード登録ポリシーの優先順位よりも低いことを確認してください。 最初の設定は、最も低い優先順位に与えられます。

セットアップのテスト

自動更新が機能していることを確認するには、mmc を使用して同じキーを使用して証明書を更新することで、手動更新が機能することを確認します。 また、更新中に証明書を選択するように求めるメッセージが表示されます。 先ほど登録した証明書を選択できます。 プロンプトが必要です。

コンピューターの個人証明書ストアを開き、アーカイブ済み証明書ビューを追加します。 これを行うには、ローカル コンピューター アカウント スナップインを mmc.exe に追加し、[証明書 (ローカルコンピューター)] をクリックして強調表示します。 mmc の右側または上部にある [アクション] タブで [表示] をクリックして [ビューオプション] をクリックし、[アーカイブ済み証明書] をクリックして、[OK] をクリックします。

方法 1

次のコマンドを実行します。

certreq -machine -q -enroll -cert <thumbprint> renew

方法 2

クライアント コンピューターの日時を、証明書テンプレートの更新時間に進めます。

たとえば、証明書テンプレートの有効期間が 2 日間で、8 時間の更新設定が構成されているとします。 この例の証明書は、その月の 18 日の午前 4:00 に発行されており、20 日の午前 4:00 に有効期限が切れます。 自動登録エンジンは、再起動時および約 8 時間ごとにトリガーされます。

このため、更新ウィンドウがテンプレートで 8 時間に設定されているため、19 日の午後 8:10 の時間に進めた場合、Certutil-pulse (AE エンジンをトリガーするため) を実行すると、証明書が登録されます。

command

テストが完了したら、時刻の設定を元の値に戻してから、クライアント コンピューターを再起動します。

Note

前のスクリーンショットは、CA の日付が 18 日に設定されているため、自動登録エンジンが想定どおりに動作することを示す例です。 そのため、証明書の発行は続行されます。 実際の状況では、このような大量の更新は行われません。

References

テスト ラボ ガイド: 証明書のキー ベース更新のデモ

証明書の登録 Web サービス

Install-AdcsEnrollmentPolicyWebService

Install-AdcsEnrollmentWebService

こちらも参照ください

Windows Server セキュリティ フォーラム

Active Directory 証明書サービス (AD CS) 公開キー 基盤 (PKI) に関してよく寄せられる質問 (FAQ)

Windows PKI ドキュメント リファレンスとライブラリ

Windows PKI ブログ

Web 登録プロキシ ページのカスタム サービス アカウントで Kerberos の制約付き委任 (S4U2Proxy または Kerberos のみ) を構成する方法