CLI を使用して、VMCA ルート証明書を、証明書チェーンに VMCA が含まれるサードパーティの CA 署名付き証明書に置き換えることができます。将来的に、VMCA によって生成されるすべての証明書には、完全な証明書チェーンが含められます。既存の証明書は、新しく生成された証明書に置き換えることができます。
VMCA を中間認証局として使用している場合、またはカスタム証明書を使用している場合は、複雑さが著しく高まり、セキュリティに悪影響が及ぶ可能性が生じて、運用上のリスクが不必要に増大することがあります。vSphere 環境内での証明書管理の詳細については、「New Product Walkthrough - Hybrid vSphere SSL Certificate Replacement」というブログ記事 (http://vmware.com/go/hybridvmca) を参照してください。
CLI を使用したルート証明書(中間 CA)の置き換え
カスタム証明書による VMware 認証局 (VMCA) 証明書の置き換えの最初の手順は、CSR を生成し、署名のために CSR を送信することです。続いて、CLI を使用して署名済みの証明書をルート証明書として VMware 認証局 (VMCA) に追加します。
Certificate Manager ユーティリティなどのツールを使用して CSR を生成できます。CSR は次の要件を満たす必要があります。
- キー サイズ:2,048 ビット(最小)から 8,192 ビット(最大)(PEM エンコード)
- PEM 形式。VMware では、PKCS8 および PKCS1(RSA キー)がサポートされます。VECS に追加されたキーは、PKCS8 に変換されます。
- x509 バージョン 3
- ルート証明書に対しては、認証局の拡張を true に設定する必要があり、証明書の署名を要件の一覧に含める必要があります。例:
basicConstraints = critical,CA:true keyUsage = critical,digitalSignature,keyCertSign
- CRL の署名は有効にしてください。
- [拡張キー使用] は、空にするか、[サーバ認証] を指定します。
- 証明書チェーンの長さに明示的な制限はありません。VMware 認証局 (VMCA) では、デフォルトで OpenSSL が使用されます。この場合、10 個の証明書となります。
- ワイルドカードまたは複数の DNS 名を使用した証明書はサポートされていません。
- VMCA の従属認証局は作成できません。
Microsoft 認証局の使用例については、VMware ナレッジベースの記事「Creating a Microsoft Certificate Authority Template for SSL certificate creation in vSphere 6.x」(https://kb.vmware.com/s/article/2112009) を参照してください。
- キー サイズ:2,048 ビット(最小)から 8,192 ビット(最大)。
- キーの使用:証明書の署名
- 基本制約:サブジェクト タイプ CA
手順
例: ルート証明書の置き換え
certool コマンドに --rootca オプションを指定して、VMCA ルート証明書をカスタムの CA ルート証明書に置き換えます。
/usr/lib/vmware-vmca/bin/certool --rootca --cert=<path>/root.pem -–privkey=<path>/root.key
- ファイル システム内の証明書がある場所に、新しいカスタム ルート証明書が追加されます。
- VECS の TRUSTED_ROOTS ストアに、カスタム ルート証明書が追加されます。
- vmdir にカスタム ルート証明書が追加されます。
次のタスク
元の VMCA ルート証明書は証明書ストアから削除できます(会社のポリシーで求められている場合)。その場合、vCenter Single Sign-On 署名証明書を置き換える必要があります。コマンド ラインを使用した vCenter Server STS 証明書の置き換えを参照してください。
CLI を使用したマシン SSL 証明書(中間 CA)の置き換え
CA から署名付き証明書を受信したら、CLI を使用してそれを VMCA ルート証明書にし、すべてのマシン SSL 証明書を置き換えることができます。
これらの手順は、VMCA を認証局として使用する証明書を置き換える場合と基本的に同じです。ただし、この場合、VMCA はすべての証明書に完全な証明書チェーンで署名します。
他のサービスとの安全な通信を実現するため、各マシンにマシン SSL 証明書が必要です。複数の vCenter Server インスタンスが拡張リンク モード構成で接続されている場合は、各ノードでマシン SSL 証明書生成コマンドを実行する必要があります。
前提条件
各マシン SSL 証明書の場合、SubjectAltName に DNS Name=<Machine FQDN> が含まれている必要があります。
手順
例: マシン SSL 証明書の置き換え(VMCA が中間 CA)
- SSL 証明書用の構成ファイルを作成し、そのファイルを現在のディレクトリに ssl-config.cfg として保存します。
Country = US Name = vmca-<FQDN-example> Organization = VMware OrgUnit = VMware Engineering State = California Locality = Palo Alto Hostname = <FQDN>
- マシン SSL 証明書にキー ペアを生成します。拡張リンク モード構成で接続された複数の vCenter Server インスタンスの展開では、このコマンドを vCenter Server ノードごとに実行します。
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=ssl-key.priv --pubkey=ssl-key.pub
現在のディレクトリに ssl-key.priv および ssl-key.pub ファイルが作成されます。
- 新しいマシン SSL 証明書を生成します。この証明書は VMCA によって署名されます。VMCA ルート証明書をカスタム証明書で置き換える場合には、VMCA はすべての証明書に完全な証明書チェーンで署名します。
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vmca-ssl.crt --privkey=ssl-key.priv --config=ssl-config.cfg
現在のディレクトリに new-vmca-ssl.crt ファイルが作成されます。
- (オプション)VECS のコンテンツをリスト表示します。
/usr/lib/vmware-vmafd/bin/vecs-cli store list
- vCenter Server のサンプル出力:
output (on vCenter): MACHINE_SSL_CERT TRUSTED_ROOTS TRUSTED_ROOT_CRLS machine vsphere-webclient vpxd vpxd-extension hvc data-encipherment APPLMGMT_PASSWORD SMS wcp KMS_ENCRYPTION
- vCenter Server のサンプル出力:
- VECS 内のマシン SSL 証明書を新しいマシン SSL 証明書で置き換えます。--store と --alias の値はデフォルト名と正確に一致させる必要があります。
- 各 vCenter Server で、次のコマンドを実行して MACHINE_SSL_CERT ストア内のマシン SSL 証明書を更新します。FQDN はマシンごとに異なるため、各マシンの証明書は別々に更新する必要があります。
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert new-vmca-ssl.crt --key ssl-key.priv
- 各 vCenter Server で、次のコマンドを実行して MACHINE_SSL_CERT ストア内のマシン SSL 証明書を更新します。FQDN はマシンごとに異なるため、各マシンの証明書は別々に更新する必要があります。
CLI を使用したソリューション ユーザー証明書(中間 CA)の置き換え
マシン SSL 証明書を置き換えたら、CLI を使用してソリューション ユーザー証明書を置き換えることができます。
- 証明書はプロキシの内側に配置されるか、カスタム証明書が使用されます。
- 中間 CAは使用されません。
各 vCenter Server システムのマシン ソリューション ユーザー証明書とソリューション ユーザー証明書を置き換えます。
前提条件
各ソリューション ユーザー証明書には異なる Subject が指定されている必要があります。たとえば、ソリューション ユーザー名(例: vpxd)などの一意の識別子を含めることができます。
手順
例: ソリューション ユーザー証明書の置き換え(中間 CA)
- 拡張リンク モード構成で、各 vCenter Server ノード上のソリューション ユーザーごとにパブリック キーとプライベート キーのペアを生成します。これには、マシン ソリューション用のペアと、追加のソリューション ユーザー (vpxd、vpxd-extension、vsphere-webclient、wcp) ごとのペアが含まれます。
- マシン ソリューション ユーザーにキー ペアを生成します。
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=machine-key.priv --pubkey=machine-key.pub
- 各ノードの vpxd ソリューション ユーザーにキー ペアを生成します。
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd-key.priv --pubkey=vpxd-key.pub
- 各ノードの vpxd-extension ソリューション ユーザーにキー ペアを生成します。
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd-extension-key.priv --pubkey=vpxd-extension-key.pub
- 各ノードの vsphere-webclient ソリューション ユーザーにキー ペアを生成します。
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=vsphere-webclient-key.priv --pubkey=vsphere-webclient-key.pub
- 各ノードの wcp ソリューション ユーザーにキー ペアを生成します。
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=wcp-key.priv --pubkey=wcp-key.pub
- マシン ソリューション ユーザーにキー ペアを生成します。
- マシン ソリューション ユーザーと、各 vCenter Server ノードの追加ソリューション ユーザー (vpxd、vpxd-extension、vsphere-webclient、wcp) ごとに、新しい VMCA ルート証明書によって署名されたソリューション ユーザー証明書を生成します。
注: --Name パラメータは一意である必要があります。ソリューション ユーザー ストアの名前も含めると、ソリューション ユーザーごとにどの証明書を適用するのかが確認しやすくなります。例には、それぞれ vpxdまたは vpxd-extension のような名前が含まれています。
- /usr/lib/vmware-vmca/share/config/certool.cfg ファイルのコピーを 1 つ作成し、必要に応じて名前、IP アドレス、DNS 名、E メールの各フィールドを変更または削除して、ファイルの名前を sol_usr.cfg などに変更します。
- 各ノードのマシン ソリューション ユーザーに証明書を生成します。
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-machine.crt --privkey=machine-key.priv --Name=machine --config sol_usr.cfg
- 各ノードの vpxd ソリューション ユーザーに証明書を生成します。
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vpxd.crt --privkey=vpxd-key.priv --Name=vpxd --config sol_usr.cfg
- 各ノードの vpxd-extensions ソリューション ユーザーに証明書を生成します。
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vpxd-extension.crt --privkey=vpxd-extension-key.priv --Name=vpxd-extension --config sol_usr.cfg
- 次のコマンドを実行して、各ノードの vsphere-webclient ソリューション ユーザーに証明書を生成します。
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vsphere-webclient.crt --privkey=vsphere-webclient-key.priv --Name=vsphere-webclient --config sol_usr.cfg
- 次のコマンドを実行して、各ノードで wcp ソリューション ユーザーの証明書を生成します。
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-wcp.crt --privkey=wcp-key.priv --Name=wcp --config sol_usr.cfg
- VECS のソリューション ユーザー証明書を、新しいソリューション ユーザー証明書で置き換えます。
注: --store と --alias パラメータは、サービスのデフォルト名と正確に一致させる必要があります。
- 以下のように、各ノードのマシン ソリューション ユーザー証明書を置き換えます。
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store machine --alias machine /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store machine --alias machine --cert new-machine.crt --key machine-key.priv
- 各ノードの vpxd ソリューション ユーザー証明書を置き換えます。
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vpxd --alias vpxd /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vpxd --alias vpxd --cert new-vpxd.crt --key vpxd-key.priv
- 各ノードの vpxd-extension ソリューション ユーザー証明書を置き換えます。
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vpxd-extension --alias vpxd-extension /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vpxd-extension --alias vpxd-extension --cert new-vpxd-extension.crt --key vpxd-extension-key.priv
- 各ノードの vsphere-webclient ソリューション ユーザー証明書を置き換えます。
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vsphere-webclient --alias vsphere-webclient /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vsphere-webclient --alias vsphere-webclient --cert new-vsphere-webclient.crt --key vsphere-webclient-key.priv
- 各ノードの wcp ソリューション ユーザー証明書を置き換えます。
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store wcp --alias wcp /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store wcp --alias wcp --cert new-wcp.crt --key wcp-key.priv
- 以下のように、各ノードのマシン ソリューション ユーザー証明書を置き換えます。
- 新しいソリューション ユーザー証明書を使用して VMware ディレクトリ サービス (vmdir) を更新します。vCenter Single Sign-On 管理者パスワードを求められます。
- /usr/lib/vmware-vmafd/bin/dir-cli service list を実行し、ソリューション ユーザーごとに一意のサービス ID サフィックスを取得します。このコマンドは、vCenter Server システム上で実行できます。
/usr/lib/vmware-vmafd/bin/dir-cli service list output: 1. machine-623bef28-0311-436e-b21f-6e0d39aa5179 2. vsphere-webclient-623bef28-0311-436e-b21f-6e0d39aa5179 3. vpxd-623bef28-0311-436e-b21f-6e0d39aa5179 4. vpxd-extension-623bef28-0311-436e-b21f-6e0d39aa5179 5. hvc-623bef28-0311-436e-b21f-6e0d39aa5179 6. wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e
注: 大規模なデプロイで、ソリューション ユーザー証明書をリストする場合は、 /usr/lib/vmware-vmafd/bin/dir-cli list の出力にすべてのノードのソリューション ユーザーが含まれます。 /usr/lib/vmware-vmafd/bin/vmafd-cli get-machine-id --server-name localhost を実行して、各ホストのローカル マシン ID を検索します。各ソリューション ユーザーの名前には、マシン ID が含まれています。 - 各 vCenter Server ノードの vmdir にあるマシン証明書を置き換えます。たとえば、machine-6fd7f140-60a9-11e4-9e28-005056895a69 が vCenter Server のマシン ソリューション ユーザーの場合、以下のコマンドを実行します。
/usr/lib/vmware-vmafd/bin/dir-cli service update --name machine-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-machine.crt
- 各ノードの vmdir にある vpxd ソリューション ユーザー証明書を置き換えます。たとえば、vpxd-6fd7f140-60a9-11e4-9e28-005056895a69 が vpxd ソリューション ユーザー ID の場合、以下のコマンドを実行します。
/usr/lib/vmware-vmafd/bin/dir-cli service update --name vpxd-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd.crt
- 各ノードの vmdir にある vpxd-extension ソリューション ユーザー証明書を置き換えます。たとえば、vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69 が vpxd-extension ソリューション ユーザー ID の場合、以下のコマンドを実行します。
/usr/lib/vmware-vmafd/bin/dir-cli service update --name vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd-extension.crt
- 各ノードの vsphere-webclient ソリューション ユーザー証明書を置き換えます。たとえば、vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69 が vsphere-webclient ソリューション ユーザー ID の場合、以下のコマンドを実行します。
/usr/lib/vmware-vmafd/bin/dir-cli service update --name vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vsphere-webclient.crt
- 各ノードの wcp ソリューション ユーザー証明書を置き換えます。たとえば、wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e が wcp ソリューション ユーザー ID の場合、以下のコマンドを実行します。
/usr/lib/vmware-vmafd/bin/dir-cli service update --name wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e --cert new-wcp.crt
- /usr/lib/vmware-vmafd/bin/dir-cli service list を実行し、ソリューション ユーザーごとに一意のサービス ID サフィックスを取得します。このコマンドは、vCenter Server システム上で実行できます。