[vCenter Server] WCP 証明書のみを 10 年の有効期限で更新する

今回は vCenter Server Appliance 7.0 から追加された WCP 証明書のみを
vCenter Server の組み込み認証局(VMCA) の署名で 10 年の有効期限で
更新する手順について記載します。

wcp 証明書のみを 10 年の有効期限で更新する手順

更新前の状態

まずは更新前の WCP 証明書の有効期限を見ていきます。

今回は vCSA 7.0 U2d にて検証を行いますので、WCP 証明書の有効期限
はデフォルトで 2 年となります。

私の環境だと以下のように 2024/08/27 で有効期限が切れます。

root@ss155 [ ~ ]# 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 : Nov  5 06:03:35 2024 GMT
[*] Store : TRUSTED_ROOTS
Alias :	2d3d6ce73499a2876671bf8e387506177174ce2d
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : machine
Alias :	machine
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : vsphere-webclient
Alias :	vsphere-webclient
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : vpxd
Alias :	vpxd
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : vpxd-extension
Alias :	vpxd-extension
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : hvc
Alias :	hvc
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : data-encipherment
Alias :	data-encipherment
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : APPLMGMT_PASSWORD
[*] Store : SMS
Alias :	sms_self_signed
            Not After : Aug 28 06:58:53 2032 GMT
[*] Store : wcp
Alias :	wcp
            Not After : Aug 27 06:51:21 2024 GMT
root@ss155 [ ~ ]# /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store wcp --text
Number of entries in store :	1
Alias :	wcp
Entry type :	Private Key
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            fe:fe:f7:2e:96:1f:01:c5
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: CN=CA, DC=vsphere, DC=local, C=US, ST=California, O=ss155.home.com, OU=VMware Engineering
        Validity
            Not Before: Aug 28 06:51:21 2022 GMT
            Not After : Aug 27 06:51:21 2024 GMT
        Subject: CN=wcp, C=US, ST=California, L=Palo Alto, O=VMware, OU=mID-5cf2a1b4-f7ba-46b6-bc2c-fbc58bd188e0
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c5:c3:5d:c5:83:e2:31:19:84:b4:ef:a7:02:f7:
                    db:da:a6:9a:8f:8f:f0:71:0c:08:14:97:1c:87:2a:
                    a9:5b:cf:7f:29:d0:64:ed:3a:7d:94:7e:6a:ea:31:
                    ca:8d:c8:3a:cf:ff:9e:63:22:e6:31:4e:f8:6f:1b:
                    18:4b:56:6a:f5:68:2e:15:a3:8c:7a:98:c6:16:97:
                    8b:00:0a:c5:76:cd:47:0b:82:9a:b3:fb:ce:55:77:
                    c8:e6:cd:dd:87:16:f6:0f:4e:4b:ec:ff:97:e8:8b:
                    b2:f1:35:2c:a9:0d:a0:c2:ac:c7:8c:5d:90:cf:c2:
                    7d:64:fd:0d:b8:64:7a:d9:6b:3a:4a:1c:a4:42:c7:
                    18:0a:f2:7a:9d:62:71:12:a3:fb:6d:08:6b:61:dc:
                    1b:e4:67:08:9d:64:5c:a1:0a:b7:80:c6:2b:75:38:
                    90:15:ec:e5:e3:21:09:77:59:79:5d:b0:07:af:c0:
                    92:37:ed:e5:10:ed:6c:54:13:af:48:25:57:7b:34:
                    31:1d:26:14:ea:b4:fb:4b:ad:5a:6e:39:fd:65:bf:
                    74:cf:e4:71:f3:13:64:cd:fd:e9:c4:69:20:e7:0c:
                    bf:77:4b:71:26:1b:5d:4f:83:32:b9:30:06:26:83:
                    c1:4b:e9:92:a4:c0:33:80:aa:49:3f:d6:4f:3d:e1:
                    9d:43
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage:
                Digital Signature, Non Repudiation, Key Encipherment
            X509v3 Subject Alternative Name:
                email:nobody@vmware.com
            X509v3 Subject Key Identifier:
                B0:F7:24:16:67:A5:F8:0E:FF:2B:BC:B9:7C:AA:7F:3E:E7:08:7B:97
            X509v3 Authority Key Identifier:
                keyid:EE:8F:4E:A7:96:9D:C6:5C:83:5F:05:E2:28:EC:08:D8:24:93:57:7E

            Authority Information Access:
                CA Issuers - URI:https://ss155.home.com/afd/vecs/ca

    Signature Algorithm: sha256WithRSAEncryption
         20:cd:0e:48:f4:e6:13:11:06:42:5e:5f:2c:03:81:ae:45:f4:
         4c:30:28:23:2a:78:21:15:6d:3c:ec:f8:54:9b:4f:3b:9b:85:
         bb:70:b0:e9:1f:1b:70:93:f6:ed:ad:78:5d:be:9f:82:99:fe:
         5f:1b:07:ec:cd:65:eb:36:3b:12:26:a0:2b:fb:c5:cb:2b:a5:
         3d:75:a5:c4:54:55:22:28:b6:b3:8a:93:44:67:8f:e2:a0:9a:
         e3:b5:d8:eb:9e:70:22:5b:6f:9b:29:9b:b8:c3:36:96:7f:7d:
         8c:23:af:6e:ea:2a:31:2c:cc:26:1f:36:56:d0:e9:c5:b5:db:
         25:39:e6:7f:9a:bd:72:75:54:a7:e4:8c:44:fd:98:e1:6b:61:
         37:b7:e1:63:db:3d:58:a0:5b:46:8b:35:23:38:7d:b1:ae:95:
         f3:24:da:34:5d:cd:cf:d2:27:00:05:37:c5:be:f9:e7:66:ae:
         77:c9:12:78:08:eb:62:ec:d1:7f:46:b3:14:ce:71:14:82:7c:
         0c:8b:96:0a:5e:f4:48:e3:48:67:ec:a1:93:71:bb:b6:3d:7f:
         cd:50:19:be:d3:02:c5:71:d8:30:84:c6:d4:48:2f:c2:73:06:
         d0:7f:d5:ff:87:a0:58:f0:c5:d4:c2:98:2a:1a:23:be:57:94:
         36:de:0b:6a
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

vCSA 7.0 から追加された wcp 証明書はデフォルトで以下の有効期限となります。

・ vCSA 7.0 U3 未満のバージョンは wcp 証明書の有効期限が 2 年
・ vCSA 7.0 U3 以上のバージョンは wcp 証明書の有効期限が 10 年

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
<参考>
Verify and resolve expired vCenter Server certificates using command line (82332)
https://kb.vmware.com/s/article/82332?lang=en_us

VMware Endpoint Certificate Store for vSphere 6.x および 7.x での証明書の手動確認 (2111411)
https://kb.vmware.com/s/article/2111411?lang=ja


WCP 証明書を 10 年で更新する手順

では、上記更新前の状態を踏まえ 10 年の有効期限(最大まで)で更新する手順に
ついて記載していきます。

まずは、作業を実施する前に vCSA をシャットダウンし、停止させた状態での
オフラインスナップショットを取得します。

オフラインスナップショットの取得が完了したら、vCSA を起動させ SSH で
接続します。

SSH 接続が完了した後、以下コマンドを実行し WCP ソリューションユーザー
のパブリック キーとプライベート キーのファイルペアを生成します。

root@ss155 [ ~ ]# /usr/lib/vmware-vmca/bin/certool --server localhost --genkey --privkey=/tmp/wcp.key --pubkey=/tmp/wcp.pub
Status : Success

WCP ソリューション ユーザー証明書を生成します。
※ <VC_FQDN> に vCSA の FQDN を入力ください。

/usr/lib/vmware-vmca/bin/certool --server=localhost --genCIScert --privkey=/tmp/wcp.key --cert=/tmp/wcp.crt --Name=wcp --Hostname=<VC_FQDN>
Status : Success

実行例

root@ss155 [ ~ ]# /usr/lib/vmware-vmca/bin/certool --server=localhost --genCIScert --privkey=/tmp/wcp.key --cert=/tmp/wcp.crt --Name=wcp --Hostname=ss155.home.com
Status : Success

dir-cli を使用して WCP サービス名を取得します。

root@ss155 [ /tmp ]# /usr/lib/vmware-vmafd/bin/dir-cli service list
Enter password for administrator@vsphere.local: ★ SSO 管理者のパスワード
1. machine-5cf2a1b4-f7ba-46b6-bc2c-fbc58bd188e0
2. vsphere-webclient-5cf2a1b4-f7ba-46b6-bc2c-fbc58bd188e0
3. vpxd-5cf2a1b4-f7ba-46b6-bc2c-fbc58bd188e0
4. vpxd-extension-5cf2a1b4-f7ba-46b6-bc2c-fbc58bd188e0
5. hvc-5cf2a1b4-f7ba-46b6-bc2c-fbc58bd188e0
6. wcp-5cf2a1b4-f7ba-46b6-bc2c-fbc58bd188e0
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

上記コマンド実行結果の場合、[wcp-5cf2a1b4-f7ba-46b6-bc2c-fbc58bd188e0]
が WCP サービス名となります。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

上記で生成した新しい WCP 証明書で WCP サービスを更新します。

/usr/lib/vmware-vmafd/bin/dir-cli service update --name <dir-cli コマンドで取得した WCP サービス名> --cert /tmp/wcp.crt

実行例

root@ss155 [ /tmp ]# /usr/lib/vmware-vmafd/bin/dir-cli service update --name wcp-5cf2a1b4-f7ba-46b6-bc2c-fbc58bd188e0 --cert /tmp/wcp.crt
Enter password for administrator@vsphere.local: ★ SSO 管理者のパスワード
Service [wcp-5cf2a1b4-f7ba-46b6-bc2c-fbc58bd188e0] updated successfully

以下の各コマンドを実行し、VECS ストアから現在登録されている WCP ソリューション
ユーザー証明書のエントリを削除します。

root@ss155 [ /tmp ]# /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store wcp --alias wcp -y
Deleted entry with alias [wcp] in store [wcp] successfully
root@ss155 [ /tmp ]# /usr/lib/vmware-vmafd/bin/vecs-cli force-refresh

新しい WCP ソリューションユーザー証明書を VECS ストアに登録します。

root@ss155 [ /tmp ]# /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store wcp --alias wcp --cert  /tmp/wcp.crt --key /tmp/wcp.key
Entry with alias [wcp] in store [wcp] was created successfully

以上で作業は更新作業は完了となりますので、有効期限が更新されたか確認してみましょう。

root@ss155 [ /tmp ]# 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 : Nov  5 06:03:35 2024 GMT
[*] Store : TRUSTED_ROOTS
Alias :	2d3d6ce73499a2876671bf8e387506177174ce2d
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : machine
Alias :	machine
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : vsphere-webclient
Alias :	vsphere-webclient
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : vpxd
Alias :	vpxd
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : vpxd-extension
Alias :	vpxd-extension
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : hvc
Alias :	hvc
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : data-encipherment
Alias :	data-encipherment
            Not After : Aug 22 06:51:06 2032 GMT
[*] Store : APPLMGMT_PASSWORD
[*] Store : SMS
Alias :	sms_self_signed
            Not After : Aug 28 06:58:53 2032 GMT
[*] Store : wcp
Alias :	wcp
            Not After : Aug 22 06:51:06 2032 GMT
root@ss155 [ /tmp ]# /usr/lib/vmware-vmafd/bin/vecs-cli entry getcert --store wcp --alias wcp --text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            de:59:d3:35:e4:08:83:cf
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: CN=CA, DC=vsphere, DC=local, C=US, ST=California, O=ss155.home.com, OU=VMware Engineering
        Validity
            Not Before: Feb 18 09:38:07 2023 GMT
            Not After : Aug 22 06:51:06 2032 GMT
        Subject: CN=wcp, DC=vsphere, DC=local, C=US, OU=mID-5cf2a1b4-f7ba-46b6-bc2c-fbc58bd188e0
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:95:a0:ee:0d:3a:1c:eb:46:d4:67:00:97:63:63:
                    39:e5:ca:34:d8:ed:58:21:60:72:50:b1:92:16:98:
                    01:9b:0b:a5:26:47:f9:6a:46:1e:80:18:f6:80:73:
                    0b:66:e0:b3:2a:23:0a:64:3e:7c:37:88:d6:76:6e:
                    fe:d7:9b:78:2d:5d:66:7a:bc:49:23:9c:e1:68:6f:
                    40:6a:7b:96:ec:92:37:22:b8:0b:e8:7e:83:6a:0e:
                    d7:5d:8b:70:8a:05:4e:45:3a:55:0d:a1:0f:c1:ae:
                    43:bb:bc:a4:0d:01:5c:87:a8:32:3c:b5:aa:ce:b1:
                    a9:f4:22:85:90:bb:f3:01:95:c5:57:c7:1c:6d:82:
                    46:d3:12:f5:e8:ac:88:3a:ab:91:ee:cb:0d:63:42:
                    99:1c:ae:89:59:55:ee:18:cd:c2:6a:97:ad:74:81:
                    3f:dd:71:d3:ac:4d:e6:6a:50:03:df:2f:ed:27:37:
                    84:6f:83:75:a8:6c:52:16:35:71:59:ab:31:1c:6f:
                    de:03:24:a0:0e:c9:46:49:2b:98:37:11:d0:b8:00:
                    23:69:0a:48:3c:08:ab:7f:01:57:9b:8e:65:93:00:
                    be:93:30:7c:97:1e:ec:6c:a8:75:14:a8:5b:d2:8f:
                    b5:5c:9b:6e:e1:d6:80:63:12:17:4a:af:4a:72:ea:
                    26:0b
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage:
                Digital Signature, Non Repudiation, Key Encipherment
            X509v3 Subject Alternative Name:
                DNS:ss155.home.com
            X509v3 Subject Key Identifier:
                06:16:F3:65:48:22:06:DF:68:2A:59:1F:32:C5:7D:F7:9E:A6:4F:7F
            X509v3 Authority Key Identifier:
                keyid:EE:8F:4E:A7:96:9D:C6:5C:83:5F:05:E2:28:EC:08:D8:24:93:57:7E

            Authority Information Access:
                CA Issuers - URI:https://ss155.home.com/afd/vecs/ca

    Signature Algorithm: sha256WithRSAEncryption
         7c:6d:61:e1:9f:6e:db:4d:a7:25:31:f5:e0:7b:1b:4f:d7:56:
         8f:d6:3d:84:0c:b8:c7:66:8f:bb:6c:ff:e6:03:85:e6:3b:49:
         ae:57:a9:2f:5a:25:30:91:dc:52:91:55:e2:16:7e:34:18:bb:
         a2:54:ab:ea:88:8e:b5:3b:a5:c8:92:8c:a7:63:8d:d9:0d:51:
         f1:26:2d:88:6f:4e:ca:d5:06:af:6c:7f:de:d3:89:4d:17:c3:
         de:1e:b9:59:90:77:24:6c:23:57:78:d7:6c:27:81:1c:1b:eb:
         68:8b:02:91:b8:12:b3:f7:25:fe:a4:a0:1a:39:0c:9b:01:2f:
         c0:7b:42:ca:30:d6:91:ae:58:ce:9f:6d:c0:03:4b:2f:15:33:
         12:31:e3:fe:3e:49:a4:29:c2:ab:3a:3c:45:2b:8d:fa:30:6a:
         a1:ed:a8:fa:75:ef:58:dc:dc:d4:2e:25:47:57:39:d6:a5:97:
         ee:95:16:2a:cd:c2:17:e6:e2:66:cf:b4:37:b3:ba:f3:22:47:
         c7:1c:78:f2:06:ef:a2:1d:0b:04:a4:f4:fe:b8:ce:c0:33:e4:
         1e:83:f0:75:df:2e:f1:d8:4f:ee:9d:04:dc:53:c7:c6:b3:d0:
         b7:40:f8:4a:de:ac:8b:24:1b:b2:7d:bc:a5:b8:4b:88:7b:da:
         3a:57:cf:40
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

本手順を実施するにあたり、冒頭には 10 年で更新されると記載していますが、
上記更新された後の有効期限を確認すると 2032/08/22 までしか有効期限
が伸びていません。(2023/02 に本作業を実施)

理由は各種証明書は最大でルート証明書の有効期限まででしか更新できない
ので、ルート証明書の有効期限と同じ 2032/08/22 までの有効期限で WCP 
証明書も更新されているということです。
(ルート証明書はデフォルトで有効期限が 10 年です。)

そのため、正確に説明すると 10 年の有効期限で更新されるというよりルート
証明書の有効期限と同じ有効期限で更新するということとなります。

最大でルート証明書の有効期限まで更新可能な件については WCP 証明書に
関わらず、その他の証明書も同じとなります。(ESXi 証明書も含め。)

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

上記で WCP 証明書が更新されていることが確認できましたら、vCSA のサービス
再起動を実施させてください。

service-control --stop --all && service-control --start --all

以上で作業は完了です。

参考

“com.vmware.vapi.std.errors.unauthenticated” and “vapi.security.authentication.invalid” errors for the WCP service causing multiple workflow failures (88508)
https://kb.vmware.com/s/article/88508?lang=en_US

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