PKI プロキシを備えた Windows Active Directory 証明書サービス (ADCS)

このドキュメントでは、PKI Proxy および NetHSM を使用した Windows Active Directory 証明書サービス (ADCS) の構成について説明します。

Prerequisits

  • NetHSM

    • Provisioned

    • Administrative access

  • PKI Proxy server

    • NetHSM PKCS#11 モジュールがインストールされ、NetHSM を使用するように設定されています

  • CAサーバー(Windows Server)

    • ADCS role installed, but not configured

    • PKI Proxy client tools installed

    • このサーバーでPKIプロキシサーバーも実行されている場合、クライアントツールは不要です。PKIプロキシサーバーにはクライアントツールが含まれているためです。

    • Pynitrokey installed

Root CA Key and Certificate

次の表には、主要なアルゴリズムと鍵長、および Windows ADCS が NetHSM と組み合わせて使用できるハッシュアルゴリズムが記載されています。

Key Algorithm

Key Length

Hash Algorithm

アールエスエー

1024

MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512

2048

MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512

4096

MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512

ECDSA

P256

SHA1、SHA256、SHA385、SHA512

P384

SHA1、SHA256、SHA385、SHA512

P521

SHA1、SHA256、SHA385、SHA512

重要

安全な鍵アルゴリズム、鍵長、およびハッシュアルゴリズムを選択する際は、ベストプラクティスに従ってください。

鍵と証明書は、新規に生成することも、既存のものを移行することも可能です。具体的な状況に応じた手順については、以下の各節をご参照ください。

Generate a new Root CA Key and Certificate on Windows

以下の手順では、ADCS内の*ルートCA(* )で使用するための新しいキーと証明書を作成します。

Tip

通常は、ADCS 構成ウィザードを使用してキーと証明書を生成し、その後、`の手順に従って、既存のキーと証明書を移行する方が簡単です。<pkiproxy-windows-ca.html#migrate-existing-key-and-certificate>`__

この場合、リクエストテンプレートを使用して、明示的なCA拡張子を含むキーを生成します。具体的な値は、ご利用の環境に合わせて調整する必要があります。

リクエストテンプレートは、RootCA.inf という名前でファイルに保存し、内容は以下の通りにしてください。

このテンプレートは、鍵長が4096ビットのRSA鍵を生成します。<CA-NAME> の部分を、ご自身のCAの名前に置き換える必要があります。

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=<CA-NAME>"
KeySpec = 1
KeyLength = 4096
Exportable = TRUE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = "Microsoft Software Key Storage Provider"
ProviderType = 0
RequestType = Cert
KeyUsage = 0x86

[Extensions]
; Key Usage: keyCertSign (0x04) + cRLSign (0x02) => 0x06
2.5.29.15 = "{critical}86"

; Basic Constraints: CA = TRUE, path length optional
2.5.29.19 = "{critical}{text}CA=TRUE"

; CA Version (V0.0)
1.3.6.1.4.1.311.21.1 = "{hex}02 01 00"

[RequestAttributes]
; Empty for self-signed request

Generate the key and certificate from the certificate template.

certreq -new RootCA.inf RootCA.req

証明書がローカルマシンの証明書ストアに追加されました。証明書をPFXファイルにエクスポートする際、<THUMBPRINT> を、前のコマンドの出力から得られた値に置き換えてください。

$password = Read-Host -AsSecureString "Password"
Export-PfxCertificate -Cert Cert:\LocalMachine\My\<THUMBPRINT> -FilePath RootCA.pfx -Password $password

パスワードは、PKCS#12アーカイブ(PFXファイル)の暗号化に使用されます。次の章「`NetHSMの設定<pkiproxy-windows-ca.html#nethsm-configuration>`__」に進むことができます。

Migrate existing Key and Certificate

既存の鍵と証明書を移行するには、ADCS上の証明書ストアからそれらをエクスポートし、そのアーカイブをNetHSMにインポートする必要があります。

重要

本番環境の認証局に変更を加える前に、そのバックアップを作成することをお勧めします。詳細については、`この<https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/component-updates/ca-backup-and-restore-windows-powershell-cmdlets>`__ ページをご参照ください。

  1. certlm.msc を開きます。

  2. の「証明書」→「ローカル コンピュータ」→「個人」→「証明書」 に移動します。

  3. Select the certificate in the list on the right.

  4. 上部のメニューバーから、「**」→「アクション」→「すべてのタスク」→「エクスポート...」** を選択します。これにより、「*」証明書エクスポートウィザード* が起動します。

  5. Confirm the introduction of the assistant with Next.

  6. 「**」の横にあるラジオボタンにチェックを入れ、「Yes, export the private key」** を選択し、「**」で確定します。次に「** 」を選択します。ラジオボタンが表示されない場合は、その鍵はエクスポート不可としてマークされています。この場合、このガイドは対象のユースケースには適用されません。

  7. 可能であれば、認証パスに含まれるすべての証明書を含めてください

  8. 「**」の横にあるラジオボタンにチェックを入れ、「Yes, export the private key」** を選択し、「**」で確定します。次に「** 」を選択します。

  9. 個人情報交換 - PKCS #12 (.PFX)」 の横にあるラジオボタンにチェックを入れます。以下のオプションが選択されていることを確認してください:

    • 可能であれば、認証パスに含まれるすべての証明書を含めてください

    • すべての拡張プロパティをエクスポートする

    • Enable certificate privacy

    Confirm the selection with Next.

  10. 「**」の横にあるラジオボタンにチェックを入れます** 。パスワード入力欄にパスワードを入力します。「**」の横にあるドロップダウンメニュー** から、「AES256-SHA256」 を選択します。

    重要

    暗号化方式「AES256-SHA256 」は、Windows Server 2019 および Windows 11 以降でのみサポートされています。それ以前のバージョンで使用する場合は、デフォルトの「TripleDES-SHA1 」のままにしてください。

    Confirm the selection with Next.

  11. Choose a storage location and file name and confirm with Next.

    重要

    エクスポートした鍵と証明書は、権限のあるユーザーのみがアクセスできる安全な場所に保管してください。

  12. Confirm the export with Finish.

  13. 右側のリストで、その証明書がまだ選択されていることを確認してください。

  14. 上部のメニューバーから、[Action] → [All Tasks] → [Delete] の順に選択します。[**] で、秘密鍵と証明書の削除を確認し、[Yes] を選択して [**] を実行します。

次の章「`」に進むことができます。NetHSMの設定<pkiproxy-windows-ca.html#nethsm-configuration>`__。

NetHSM Configuration

前の章で作成した鍵と証明書をNetHSMにインポートする必要があります。`ニトロピ<../software/nitropy/index.html>`__ を実行することで、PKCS#12アーカイブをNetHSMに直接インポートできます。

PKCS#12アーカイブを次のようにインポートしてください。その際、`` を <KEY-ID>` に、`` を <MECHANISM>` に、`` を <PKCS12-ARCHIVE>` に、それぞれ置き換えてください。

nitropy nethsm import-pkcs12 -k <KEY-ID> -m <MECHANISM> -p <password> <PKCS12-ARCHIVE>

RSA鍵の場合、メカニズムは``rsa_signature_pkcs1`` でなければならず、ECDSA鍵の場合は``ecdsa_signature`` でなければなりません。

これで、NetHSM上に証明書が存在することを確認できます。

nitropy nethsm list-keys

そのキーは、前のコマンドで指定されたキーIDとともに一覧表示されます。

PKI Proxy Server Configuration

PKI プロキシサーバーでは、NetHSM から追加したばかりの証明書を共有する必要があります。詳細については、「`NetHSM からの証明書の公開<pkiproxy.html#publish-certificates-from-the-nethsm>`__」の手順に従ってください。

Windows ADCS Configuration

PKI Proxy Client Tools Configuration

以下では、Windowsのローカルマシン証明書ストアに鍵と証明書を登録します。

  1. Open the PKI Proxy Certificate Manager.

  2. Click the Add... button.

  3. 必須項目を入力してください。

    • 場所(例:https://localhost:9266

    • 認証

    • User

    • Secret Key/Password/SPN

    • Certificate Store: LOCALMACHINE\My

    Confirm the configuration with the OK button. This will bring you back to the previous window.

  4. The list under Certificate Management in the PKI Proxy Certificate Manager should now show the just added certificate.

これで、証明書がローカルマシンの証明書ストアに存在することを確認できます。

  1. ** 「**」を開くには、「** 」ダイアログを起動します。これを行うには、Windows**のスタートメニュー** を右クリックして「**」を選択するか、キーボードの**Windows キー + R** を押します。

  2. 「**」の「** 」ダイアログで、「certlm.msc」と入力し、「**」を押して確定します。キーボードで「** 」と入力するか、「OK 」をクリックします。

  3. 表示された証明書マネージャーで、左側のツリー構造から「の証明書 - ローカルコンピュータ → 個人 → 証明書 」へと移動します。

  4. The published certificate is now listed on the right.

Windows ADCS Configuration

  1. ** ` のスタートメニュー から「 サーバーマネージャー」 を開くか、キーボードの Windowsキー + R を押して「 ` 」と入力してください。** **** ****ServerManager.exe

  2. 右上のメニューバーにある国旗アイコンをクリックし、展開後の通知から「**」を選択し、対象サーバー** で Active Directory 証明書サービスを構成します。これにより、「AD CS Configuration 」ウィザードが起動します。

  3. In the wizard, set the settings below according to the stage.

    • Role Services

      Check the radio button next to Certification Authority.

    • Setup Type

      お使いの環境に応じて、エンタープライズCA( )または**スタンドアロンCA(** )を選択してください。

    • CA Type

      「**」ルートCAを選択してください**

    • Private Key

      「**」の横にあるラジオボタンにチェックを入れます。「既存の秘密鍵を使用する」** を選択します。このオプションでは、「**」の横にあるラジオボタンにチェックを入れます。「証明書を選択し、それに関連付けられた秘密鍵を使用する」** を選択します。

      • Existing Certificate

        「**」の証明書一覧(** )から、使用する証明書を選択します。「(CAが秘密鍵にアクセスする際に管理者の操作を許可する)」の横にあるチェックボックスが、 になっていないことを確認してください。PKI Proxy KSPでは、秘密鍵の使用に追加の認証を必要としないため、この設定は不要です。

  4. 設定ウィザードが完了したら、のスタートメニュー から「認証局 」を開くか、キーボードのWindowsキー + Rキー**を押して「 」** を開き、「certsrv.msc」と入力して開きます。認証局の名前の横に、白いチェックマークが付いた緑色のドットアイコンが表示されていれば、認証局サービスが正常に起動していることを確認できます。

重要

認証局の利用可否は、秘密鍵と証明書の利用可否によって決まります。これらが利用できない場合、認証局サービスが起動しないか、予期せず停止する可能性があります。エラーが発生した場合は、詳細について、のWindowsイベントログ( )を確認してください。