カスタム ポート上で証明書キーベースの書き換え用の証明書の登録 Web サービスを構成する

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

まとめ

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

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

注意

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

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

シナリオ

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

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

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

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

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

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

deployment

構成の手順

概要

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

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

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

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

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

構成

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

注意

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

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

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

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

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

  2. [発行要件] タブで、[CA 証明書マネージャの許可] チェックボックスを選択します。 Issuance Requirements

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

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

注意

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

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

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

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

方法 1

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

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

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

注意

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) をインストールします。

注意

このコマンドでは、<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 として指定されます。 認証の種類は usernameです。 SSLCertThumbPrint は、IIS のバインドに使用される証明書のサムプリントです。

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

インストールが正常に完了すると、インターネット インフォメーション サービス (IIS) マネージャー コンソールに次のように表示されます。 Screenshot that shows the Internet Information Services Manager console.

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

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

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

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

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

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

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

注意

このコマンドでは、<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 サービス アカウントとして指定されます。 認証の種類は certificateです。 SSLCertThumbPrint は、IIS のバインドに使用される証明書のサムプリントです。

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

注意

サービス アカウントは、サーバーの IIS_IUSRS グループに属している必要があります。

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

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

[既定のWeb サイト] の下にある [KeyBasedRenewal_ADPolicyProvider_CEP_Certificate] を選択し、[アプリケーション設定] を開きます。 IDURI をメモしておきます。 管理用の フレンドリ名 を追加できます。

注意

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

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

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

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

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

注意

クライアント コンピューターにドメインを参加させる必要はありません。 KBR for dsmapper サービスで証明書ベースの認証を行うときに、このアカウントは画像に含まれています。

New Object

手順 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')}

注意

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

重要

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

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

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

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

手順 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 Edit

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

クライアント コンピューターで、登録ポリシーと自動登録ポリシーを設定します。 これを行うには、次の手順に従います。

  1. [実行]> [開始] を選択し、「gpedit.msc」と入力します。

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

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

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

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

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

    c. 優先順位を 10に設定し、ポリシー サーバーを検証します。 Screenshot that shows where to set the priority.

    Note

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

  5. コンピューターの最初の証明書を certlm .msc で登録します。 Screenshot that shows where to select the certificate enrollment policy.

    KBR テンプレートを選択し、証明書を登録します。 Screenshot that shows where to select the K B R template.

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

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

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

    Enrollment Policy

Note

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

セットアップのテスト

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

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

方法 1

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

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

Screenshot that shows how to run the provided command.

方法 2

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

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

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

command

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

注意

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

リファレンス

Test Lab Guide: Demonstrating Certificate Key-Based Renewal

証明書の登録 Web サービス

Install-AdcsEnrollmentPolicyWebService

Install-AdcsEnrollmentWebService

関連項目

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

Active Directory 証明書サービス (AD CS) と公開キー基盤 (PKI) についてよく寄せられる質問 (FAQ) のページ

Windows PKI のドキュメント リファレンスおよびライブラリに関するページ

Windows PKI ブログ

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