[vCenter Server] vSphere Certificate Manager を使用してソリューションユーザー証明書を 10 年の有効期限のまま更新する方法

以下の記事の通り、vCenter Server 7.0/ vCenter Server 8.0 ではデフォルト
でマシン SSL 証明書以外の証明書は、有効期限が 10 年になっています。
※ vCenter Server 7.0U2 以下での WCP 証明書は例外。

しかし、vSphere Certificate Manager からソリューションユーザー証明書
を更新した際に、デフォルト 10 年の有効期限から 2 年の有効期限で更新
されてしまうことがあります。
(マシン SSL 証明書の有効期限切れに伴い、全ての証明書をリセットした場合
などにソリューションユーザー証明書の有効期限が 2 年になってしまう可能性
があります。)

今回は、vCenter Server 7.0 / vCenter Server 8.0 においてデフォルト
10 年のソリューションユーザー証明書を vSphere Certificate Manager
から 10 年のままの有効期限で更新する方法について記載します。

※追記
以下の記事の手順にてマシン SSL 証明書も最大 10 年の有効期限で
更新できるようになりました。

確認環境

vCenter Server 7.0
vCenter Server 8.0

vSphere Certificate Manager を使用してソリューションユーザー証明書を 10 年の有効期限のまま更新する

vSphere Certificate Manager を使用してソリューションユーザー証明所を
更新する場合、「Do you wish to generate all certificates using configuration
file : Option[Y/N] ? : 」の質問に対し、Y で実行するか N で実行するかによって
動作が異なります。

root@ss150 [ ~ ]# /usr/lib/vmware-vmca/bin/certificate-manager
		 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
		|                                                                     |
		|      *** Welcome to the vSphere 6.8 Certificate Manager  ***        |
		|                                                                     |
		|                   -- Select Operation --                            |
		|                                                                     |
		|      1. Replace Machine SSL certificate with Custom Certificate     |
		|                                                                     |
		|      2. Replace VMCA Root certificate with Custom Signing           |
		|         Certificate and replace all Certificates                    |
		|                                                                     |
		|      3. Replace Machine SSL certificate with VMCA Certificate       |
		|                                                                     |
		|      4. Regenerate a new VMCA Root Certificate and                  |
		|         replace all certificates                                    |
		|                                                                     |
		|      5. Replace Solution user certificates with                     |
		|         Custom Certificate                                          |
		|         NOTE: Solution user certs will be deprecated in a future    |
		|         release of vCenter. Refer to release notes for more details.|
		|                                                                     |
		|      6. Replace Solution user certificates with VMCA certificates   |
		|                                                                     |
		|      7. Revert last performed operation by re-publishing old        |
		|         certificates                                                |
		|                                                                     |
		|      8. Reset all Certificates                                      |
		|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|
Note : Use Ctrl-D to exit.
Option[1 to 8]: 8
Do you wish to generate all certificates using configuration file : Option[Y/N] ? : ★★★

具体的にどう違うのかと言うと、
「 Do you wish to generate all certificates using configuration file : Option[Y/N] ? 」
の質問に対し、

Y で進めた場合は、ソリューションユーザー証明書が 2 年の有効期限で更新されます。
N で進めた場合は、ソリューションユーザー証明書が 10 年の有効期限で更新されます。



以上を踏まえ、実際に動作を確認してみます。

以下が更新前の各種証明書の有効期限となり、それぞれ以下の状態から更新を
行なっていきます。

root@ss150 [ ~ ]# for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list | grep -v TRUSTED_ROOT_CRLS); do echo "[*] Store :" $store; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -ie "Alias" -ie "Not After";done;
[*] Store : MACHINE_SSL_CERT
Alias :	__MACHINE_CERT
            Not After : Aug 27 18:17:59 2024 GMT
[*] Store : TRUSTED_ROOTS
Alias :	01fb206e2d13448d921ef0d65dbdb03c304e2e72
            Not After : Aug 22 06:17:59 2032 GMT
[*] Store : machine
Alias :	machine
            Not After : Aug 22 06:17:59 2032 GMT
[*] Store : vsphere-webclient
Alias :	vsphere-webclient
            Not After : Aug 22 06:17:59 2032 GMT
[*] Store : vpxd
Alias :	vpxd
            Not After : Aug 22 06:17:59 2032 GMT
[*] Store : vpxd-extension
Alias :	vpxd-extension
            Not After : Aug 22 06:17:59 2032 GMT
[*] Store : hvc
Alias :	hvc
            Not After : Aug 22 06:17:59 2032 GMT
[*] Store : data-encipherment
Alias :	data-encipherment
            Not After : Aug 22 06:17:59 2032 GMT
[*] Store : APPLMGMT_PASSWORD
Alias :	location_password_default
[*] Store : SMS
Alias :	sms_self_signed
            Not After : Aug 28 06:25:42 2032 GMT
[*] Store : wcp
Alias :	wcp
            Not After : Aug 22 06:17:59 2032 GMT

以下では、「Do you wish to generate all certificates using configuration
file : Option[Y/N] ? 」を Y で進めてみます。

root@ss150 [ ~ ]# /usr/lib/vmware-vmca/bin/certificate-manager
		 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
		|                                                                     |
		|      *** Welcome to the vSphere 6.8 Certificate Manager  ***        |
		|                                                                     |
		|                   -- Select Operation --                            |
		|                                                                     |
		|      1. Replace Machine SSL certificate with Custom Certificate     |
		|                                                                     |
		|      2. Replace VMCA Root certificate with Custom Signing           |
		|         Certificate and replace all Certificates                    |
		|                                                                     |
		|      3. Replace Machine SSL certificate with VMCA Certificate       |
		|                                                                     |
		|      4. Regenerate a new VMCA Root Certificate and                  |
		|         replace all certificates                                    |
		|                                                                     |
		|      5. Replace Solution user certificates with                     |
		|         Custom Certificate                                          |
		|         NOTE: Solution user certs will be deprecated in a future    |
		|         release of vCenter. Refer to release notes for more details.|
		|                                                                     |
		|      6. Replace Solution user certificates with VMCA certificates   |
		|                                                                     |
		|      7. Revert last performed operation by re-publishing old        |
		|         certificates                                                |
		|                                                                     |
		|      8. Reset all Certificates                                      |
		|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|
Note : Use Ctrl-D to exit.
Option[1 to 8]: 8
Do you wish to generate all certificates using configuration file : Option[Y/N] ? : Y

Please provide valid SSO and VC privileged user credential to perform certificate operations.
Enter username [Administrator@vsphere.local]:Administrator@vsphere.local
Enter password:


Please configure certool.cfg with proper values before proceeding to next step.

Press Enter key to skip optional parameters or use Default value.

Enter proper value for 'Country' [Default value : US] :
Enter proper value for 'Name' [Default value : CA] :

Enter proper value for 'Organization' [Default value : VMware] :

Enter proper value for 'OrgUnit' [Default value : VMware Engineering] :

Enter proper value for 'State' [Default value : California] :

Enter proper value for 'Locality' [Default value : Palo Alto] :

Enter proper value for 'IPAddress' (Provide comma separated values for multiple IP addresses) [optional] :

Enter proper value for 'Email' [Default value : email@acme.com] :

Enter proper value for 'Hostname' (Provide comma separated values for multiple Hostname entries) [Enter valid Fully Qualified Domain Name(FQDN), For Example : example.domain.com] : ss150.home.com

Enter proper value for VMCA 'Name' :ss150.home.com

You are going to regenerate Root Certificate and all other certificates using VMCA
Continue operation : Option[Y/N] ? : Y
:
:
Status : 100% Completed [All tasks completed successfully]

root@ss150 [ ~ ]# for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list | grep -v TRUSTED_ROOT_CRLS); do echo "[*] Store :" $store; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -ie "Alias" -ie "Not After";done;
[*] Store : MACHINE_SSL_CERT
Alias :	__MACHINE_CERT
            Not After : Jun  9 13:53:17 2025 GMT
[*] Store : TRUSTED_ROOTS
Alias :	01fb206e2d13448d921ef0d65dbdb03c304e2e72
            Not After : Aug 22 06:17:59 2032 GMT
Alias :	b002d6b78d0bb3f698e17b9b1b14011819ddba52
            Not After : Jun  4 14:03:16 2033 GMT
[*] Store : machine
Alias :	machine
            Not After : Jun  9 14:04:05 2025 GMT
[*] Store : vsphere-webclient
Alias :	vsphere-webclient
            Not After : Jun  9 14:04:09 2025 GMT
[*] Store : vpxd
Alias :	vpxd
            Not After : Jun  9 14:04:11 2025 GMT
[*] Store : vpxd-extension
Alias :	vpxd-extension
            Not After : Jun  9 14:04:14 2025 GMT
[*] Store : hvc
Alias :	hvc
            Not After : Jun  9 14:04:21 2025 GMT
[*] Store : data-encipherment
Alias :	data-encipherment
            Not After : Aug 22 06:17:59 2032 GMT
[*] Store : APPLMGMT_PASSWORD
Alias :	location_password_default
[*] Store : SMS
Alias :	sms_self_signed
            Not After : Aug 28 06:25:42 2032 GMT
[*] Store : wcp
Alias :	wcp
            Not After : Jun  9 14:04:25 2025 GMT
[*] Store : BACKUP_STORE
Alias :	bkp___MACHINE_CERT
            Not After : Aug 27 18:17:59 2024 GMT
Alias :	bkp_machine
            Not After : Aug 22 06:17:59 2032 GMT
Alias :	bkp_vsphere-webclient
            Not After : Aug 22 06:17:59 2032 GMT
Alias :	bkp_vpxd
            Not After : Aug 22 06:17:59 2032 GMT
Alias :	bkp_vpxd-extension
            Not After : Aug 22 06:17:59 2032 GMT
Alias :	bkp_hvc
            Not After : Aug 22 06:17:59 2032 GMT
Alias :	bkp_wcp
            Not After : Aug 22 06:17:59 2032 GMT

上記のように Y で更新した場合は、更新前は有効期限が 2032 年まであった
ソリューションユーザー証明書が 2025 年までの有効期限になっていることが
確認できます。
(BACKUP_STORE に以前の証明書が存在しています。)

続いて、「Do you wish to generate all certificates using configuration
file : Option[Y/N] ? 」を N で進めてみます。

root@ss150 [ ~ ]# /usr/lib/vmware-vmca/bin/certificate-manager
		 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
		|                                                                     |
		|      *** Welcome to the vSphere 6.8 Certificate Manager  ***        |
		|                                                                     |
		|                   -- Select Operation --                            |
		|                                                                     |
		|      1. Replace Machine SSL certificate with Custom Certificate     |
		|                                                                     |
		|      2. Replace VMCA Root certificate with Custom Signing           |
		|         Certificate and replace all Certificates                    |
		|                                                                     |
		|      3. Replace Machine SSL certificate with VMCA Certificate       |
		|                                                                     |
		|      4. Regenerate a new VMCA Root Certificate and                  |
		|         replace all certificates                                    |
		|                                                                     |
		|      5. Replace Solution user certificates with                     |
		|         Custom Certificate                                          |
		|         NOTE: Solution user certs will be deprecated in a future    |
		|         release of vCenter. Refer to release notes for more details.|
		|                                                                     |
		|      6. Replace Solution user certificates with VMCA certificates   |
		|                                                                     |
		|      7. Revert last performed operation by re-publishing old        |
		|         certificates                                                |
		|                                                                     |
		|      8. Reset all Certificates                                      |
		|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|
Note : Use Ctrl-D to exit.
Option[1 to 8]: 8
Do you wish to generate all certificates using configuration file : Option[Y/N] ? : N

Please provide valid SSO and VC privileged user credential to perform certificate operations.
Enter username [Administrator@vsphere.local]:Administrator@vsphere.local
Enter password:

Please configure certool.cfg with proper values before proceeding to next step.

Press Enter key to skip optional parameters or use Default value.

Enter proper value for 'Country' [Default value : US] :

Enter proper value for 'Name' [Default value : CA] :

Enter proper value for 'Organization' [Default value : VMware] :

Enter proper value for 'OrgUnit' [Default value : VMware Engineering] :

Enter proper value for 'State' [Default value : California] :

Enter proper value for 'Locality' [Default value : Palo Alto] :

Enter proper value for 'IPAddress' (Provide comma separated values for multiple IP addresses) [optional] :

Enter proper value for 'Email' [Default value : email@acme.com] :

Enter proper value for 'Hostname' (Provide comma separated values for multiple Hostname entries) [Enter valid Fully Qualified Domain Name(FQDN), For Example : example.domain.com] : ss150.home.com

Enter proper value for VMCA 'Name' :ss150.home.com
Continue operation : Option[Y/N] ? : Y

You are going to reset by regenerating Root Certificate and replace all certificates using VMCA
Continue operation : Option[Y/N] ? : Y
:
:
Reset status : 100% Completed [Reset completed successfully]

root@ss150 [ ~ ]# for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list | grep -v TRUSTED_ROOT_CRLS); do echo "[*] Store :" $store; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -ie "Alias" -ie "Not After";done;
[*] Store : MACHINE_SSL_CERT
Alias :	__MACHINE_CERT
            Not After : Jun  9 16:50:49 2025 GMT
[*] Store : TRUSTED_ROOTS
Alias :	01fb206e2d13448d921ef0d65dbdb03c304e2e72
            Not After : Aug 22 06:17:59 2032 GMT
Alias :	b8a6cf8d8a891d56413ef58ecb469af223f6861e
            Not After : Jun  4 17:00:48 2033 GMT
[*] Store : machine
Alias :	machine
            Not After : Jun  4 17:00:48 2033 GMT
[*] Store : vsphere-webclient
Alias :	vsphere-webclient
            Not After : Jun  4 17:00:48 2033 GMT
[*] Store : vpxd
Alias :	vpxd
            Not After : Jun  4 17:00:48 2033 GMT
[*] Store : vpxd-extension
Alias :	vpxd-extension
            Not After : Jun  4 17:00:48 2033 GMT
[*] Store : hvc
Alias :	hvc
            Not After : Jun  4 17:00:48 2033 GMT
[*] Store : data-encipherment
Alias :	data-encipherment
            Not After : Aug 22 06:17:59 2032 GMT
[*] Store : APPLMGMT_PASSWORD
Alias :	location_password_default
[*] Store : SMS
Alias :	sms_self_signed
            Not After : Aug 28 06:25:42 2032 GMT
[*] Store : wcp
Alias :	wcp
            Not After : Jun  4 17:00:48 2033 GMT
[*] Store : BACKUP_STORE
Alias :	bkp___MACHINE_CERT
            Not After : Aug 27 18:17:59 2024 GMT
Alias :	bkp_machine
            Not After : Aug 22 06:17:59 2032 GMT
Alias :	bkp_vsphere-webclient
            Not After : Aug 22 06:17:59 2032 GMT
Alias :	bkp_vpxd
            Not After : Aug 22 06:17:59 2032 GMT
Alias :	bkp_vpxd-extension
            Not After : Aug 22 06:17:59 2032 GMT
Alias :	bkp_hvc
            Not After : Aug 22 06:17:59 2032 GMT
Alias :	bkp_wcp
            Not After : Aug 22 06:17:59 2032 GMT

上記のように N で更新した場合は、ソリューションユーザー証明書の有効期限
が 2033 年で更新されていることが確認できます。

冒頭でも記載した通り、マシン SSL 証明書の有効期限切れに伴い、
全ての証明書をリセットする際、「Do you wish to generate all certificates
using configuration file : Option[Y/N] ? 」の質問に対し、Y を実行した
場合は、ソリューションユーザー証明書の有効期限が 2 年に縮んでしまいますが、
N を実行することで 10 年の有効期限のまま更新することが可能です。

なお、vSphere Certificate Manager を使用して VMCA から発行される
マシン SSL 証明書を 10 年の有効期限にするような方法については、情報が
確認できていません。

そのため、マシン SSL 証明書の有効期限を伸ばしたい場合は、カスタム証明書
を使用するしか無いと考えています。

また、「Do you wish to generate all certificates using configuration file :
Option [Y/N] ? 」の質問が出るのは、ソリューションユーザー証明書の更新が
含まれるオプションを選択した場合のみとなります。

Y を実行した時と N を実行した時の違い

Y を実行した時と N を実行した時の処理がどう違うのかについて、ログを確認
したところ、ソリューションユーザー証明書生成時に実行されているコマンドの
オプションが異なっていました。

Y を実行した場合

2023-06-10T23:06:38.469Z INFO certificate-manager  Running command :- ['/usr/lib/vmware-vmca/bin/certool', '--server=localhost', '--gencert', '--privkey=/storage/certmanager/wcp.priv', '--cert=/storage/certmanager/wcp.crt', '--config=/var/tmp/vmware/wcp.cfg']

N を実行した場合

2023-06-10T17:10:31.932Z INFO certificate-manager Running command :- ['/usr/lib/vmware-vmca/bin/certool', '--server=localhost', '--genCIScert', '--privkey=/storage/certmanager/wcp.priv', '--cert=/storage/certmanager/wcp.crt', '--Name=wcp']

N を実行した場合は、–genCIScert と言うオプションが使用されており、
これは以下で記事にした WCP 証明書のみを 10 年の有効期限で更新する
方法で使用したオプションと同じです。

Y を実行した場合に使用される –gencert オプションを使用した証明書の
置き換えは以下の VMware ドキュメントで記載されています。

・新規 VMCA 署名付き証明書によるソリューション ユーザー証明書の置き換え
 https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.authentication.doc/GUID-03705B8B-7B63-4C9A-961C-8DCB1D857557.html

・certool 管理コマンド リファレンス
 https://docs.vmware.com/jp/VMware-vSphere/6.7/com.vmware.psc.doc/GUID-7696606E-CBDC-4D11-B190-EC9136C06D6B.html

vSphere Certificate Manager を使用すると、上記のようなコマンドを
自動で実行してくれていることが分かります。

タイトルとURLをコピーしました