企業ポリシーで規定されている場合は、CLI を使用して、vSphere で使用されている一部または全部の証明書を、サードパーティまたはエンタープライズ認証局 (CA) によって署名された証明書で置き換えることができます。これを行った場合、VMware 認証局 (VMCA) は証明書チェーンには含まれなくなります。すべての vCenter Server 証明書を VECS に格納する必要があります。

すべての証明書を置き換えるか、ハイブリッド ソリューションを使用できます。たとえば、ネットワーク トラフィックに使用されるすべての証明書を置き換え、VMCA 署名付きソリューション ユーザー証明書はそのまま残すことを考えます。ソリューション ユーザー証明書は、 vCenter Single Sign-On への認証にのみ使用されます。vCenter Server では、ソリューション ユーザー証明書は内部での通信にのみ使用されます。ソリューション ユーザー証明書は、外部との通信には使用されません。
注: VMCA を使用しない場合には、証明書を使用して新しいコンポーネントをプロビジョニングしたり、証明書の期限を常に把握するために、すべての証明書を自分自身で置き換える必要があります。

カスタム証明書を使用する場合でも、VMware Certificate Manager ユーティリティを使用して証明書を置き換えることができます。Certificate Manager を使用したすべての証明書のカスタム証明書への置き換えを参照してください。

証明書の置き換え後に vSphere Auto Deploy で問題が発生した場合は、VMware ナレッジベースの記事 (https://kb.vmware.com/s/article/2000988) を参照してください。

CLI を使用した証明書の要求およびカスタム ルート証明書のインポート

エンタープライズまたはサードパーティ認証局 (CA) からのカスタム証明書を使用できます。最初の手順は、認証局に証明書を要求し、次に CLI を使用してルート証明書を VMware Endpoint Certificate Store (VECS) にインポートすることです。

前提条件

証明書は次の要件を満たす必要があります。

  • キー サイズ:2,048 ビット(最小)から 8,192 ビット(最大)(PEM エンコード)
  • PEM 形式。VMware では、PKCS8 および PKCS1(RSA キー)がサポートされます。VECS に追加されたキーは、PKCS8 に変換されます。
  • x509 バージョン 3
  • ルート証明書の場合、認証局の拡張を true に設定する必要があり、証明書の署名を要件の一覧に含める必要があります。
  • SubjectAltName には DNS Name=<machine_FQDN> が含まれている必要があります。
  • CRT 形式
  • キー使用法として、デジタル署名、キー暗号化が含まれている必要があります
  • 1 日前の開始時刻。
  • vCenter Server インベントリにある、ESXi ホストのホスト名(または IP アドレス)に設定された CN (および SubjectAltName)
注: vSphere の FIPS 証明書は、2,048 ビットと 3,072 ビットの RSA キー サイズのみを検証します。

手順

  1. 以下の証明書の証明書署名リクエスト (CSR) をエンタープライズまたはサードパーティ証明書プロバイダに送信します。
    • 各マシンのマシン SSL 証明書。マシン SSL 証明書の場合、SubjectAltName フィールドには、完全修飾ドメイン名 (DNS NAME=machine_FQDN) が含まれている必要があります。
    • オプションで、ノードごとに 5 つのソリューション ユーザー証明書。ソリューション ユーザー証明書には IP アドレス、ホスト名、メール アドレスを含める必要はありません。証明書の Subject は、各証明書で異なっている必要があります。

    通常、その結果は信頼されたチェーンの PEM ファイルと、vCenter Server ノードごとの署名付き SSL 証明書です。

  2. TRUSTED_ROOTS およびマシン SSL ストアをリストします。
    vecs-cli store list 
    
    1. 現在のルート証明書とすべてのマシン SSL 証明書が VMCA によって署名されていることを確認します。
    2. シリアル番号、発行者、Subject の CN フィールドを書き留めておきます。
    3. (オプション) Web ブラウザを使用して、証明書を置き換えるノードへの HTTPS 接続を開き、証明書情報を表示して、マシン SSL 証明書と一致していることを確認します。
  3. すべてのサービスを停止し、証明書の作成、伝達、およびストレージを処理するサービスを開始します。
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  4. カスタム ルート証明書を公開します。
    dir-cli trustedcert publish --cert <my_custom_root>
    コマンド ラインでユーザー名とパスワードを指定しないと、指定するように求められます。
  5. すべてのサービスを再開します。
    service-control --start --all

次のタスク

元の VMCA ルート証明書は証明書ストアから削除できます(会社のポリシーで求められている場合)。その場合、vCenter Single Sign-On 証明書を更新する必要があります。コマンド ラインを使用した vCenter Server STS 証明書の置き換えを参照してください。

CLI を使用したマシン SSL 証明書のカスタム証明書への置き換え

カスタム証明書を取得したら、CLI を使用して各マシン証明書を置き換えることができます。

証明書の置き換えを開始する前に、次の情報を確認しておく必要があります。
  • [email protected] のパスワード
  • 有効なマシン SSL カスタム証明書(.crt ファイル)
  • 有効なマシン SSL カスタム キー(.key ファイル)
  • ルートの有効なカスタム証明書(.crt ファイル)

前提条件

サードパーティまたはエンタープライズ CA から各マシンの証明書を取得している必要があります。

  • キー サイズ:2,048 ビット(最小)から 8,192 ビット(最大)(PEM エンコード)
  • CRT 形式
  • x509 バージョン 3
  • SubjectAltName には DNS Name=<machine_FQDN> が含まれている必要があります。
  • キー使用法として、デジタル署名、キー暗号化が含まれている必要があります

vCenter Server ホストで手順を実行します。

手順

  1. 現在のマシン SSL 証明書をバックアップします。
    /usr/lib/vmware-vmafd/bin/vecs-cli entry getcert --store MACHINE_SSL_CERT --alias __MACHINE_CERT > oldmachine.crt
    /usr/lib/vmware-vmafd/bin/vecs-cli entry getkey --store MACHINE_SSL_CERT --alias __MACHINE_CERT > oldmachinekey.key
  2. 各ホストにログインし、認証局から取得した新しいマシン証明書を VECS に追加します。
    SSL を介して通信するには、すべてのホストのローカル証明書ストアに新しい証明書が必要です。
    1. 既存の証明書を削除します。
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT
    2. 新しい証明書を追加します。
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert <cert-file-path> --key <key-file-path>
  3. 置き換える古い証明書のハッシュを抽出します。
    openssl x509 -in <path_to_old_machinessl_certificate> -noout -sha1 -fingerprint

    次のような出力が表示されます。

    SHA1 Fingerprint=13:1E:60:93:E4:E6:59:31:55:EB:74:51:67:2A:99:F8:3F:04:83:88
  4. Lookup Service 登録エンドポイントを手動で更新します。
    /usr/lib/vmware-lookupsvc/tools/ls_update_certs.py --url https://<vCenterServer_FQDN>/lookupservice/sdk --certfile <cert-file-path> --user '[email protected]' --password '<password>' --fingerprint <SHA1_hash_of_the_old_certificate_to_replace>

    ls_update_certs.py の実行中に問題が発生した場合は、https://kb.vmware.com/s/article/95982 にある VMware ナレッジベースの記事を参照してください。

  5. すべてのサービスを再起動します。
    service-control --stop --all && service-control --start --all