This article covers two scenarios for intermediate certificate management on vCenter Server:
Note: If your new intermediate certificate has different Subject/Authority Key Identifiers than the old certificate, you will need to renew all certificates in vCenter. See the Prerequisites section for validation steps.
When VMCA is configured as a subordinate CA, it uses an intermediate certificate signed by your enterprise or third-party CA. This intermediate certificate has an expiration date. When it expires (or approaches expiration), the certificate chain breaks, which can cause:
⚠️ IMPORTANT: Complete all prerequisite steps before proceeding with the resolution.
Take an offline snapshot of the vCenter Server VM before making any certificate changes. For Enhanced Linked Mode environments, snapshot all linked vCenter Servers simultaneously while powered off.
Review the current certificates to understand your environment:
/usr/lib/vmware-vmafd/bin/vecs-cli entry list --store MACHINE_SSL_CERT --text | less
/usr/lib/vmware-vmafd/bin/vecs-cli entry list --store TRUSTED_ROOTS --text | less
For detailed certificate review procedures, see: KB 321380 - Manually reviewing certificates in VMware Endpoint Certificate Store
If you are replacing an expired intermediate certificate, you must verify that the Subject Key Identifier and Authority Key Identifier of the new certificate match the old certificate.
Compare the X509v3 Subject Key Identifier from your current intermediate certificate with the new one from your CA. If they differ, the certificate is not a simple renewal—you will need to regenerate all downstream certificates.
Note: If the key identifiers do not match, follow KB 316601 - Replace vCenter Machine SSL certificate Custom Certificate Authority Signed Certificate for a full certificate replacement.
Ensure you have obtained the renewed or new intermediate certificate from your CA before proceeding.
For initial setup (generating a CSR): See KB 328308 - Configuring the vSphere 6.0 U1b or later VMware Certificate Authority as a Subordinate Certificate Authority
If generating a new CSR, it must meet these requirements:
basicConstraints = critical,CA:truekeyUsage = critical,digitalSignature,keyCertSignFor Microsoft CA template creation, see: KB 315271 - Creating a Microsoft Certificate Authority Template for SSL certificate creation in vSphere
Back up the current Machine SSL certificate and key:
/usr/lib/vmware-vmafd/bin/vecs-cli entry getcert --store MACHINE_SSL_CERT --alias __MACHINE_CERT --output /var/core/ssl_backup.cer
/usr/lib/vmware-vmafd/bin/vecs-cli entry getkey --store MACHINE_SSL_CERT --alias __MACHINE_CERT --output /var/core/ssl_key.key
Create a certificate chain file containing all certificates in the proper order. The order is critical:
-----BEGIN CERTIFICATE-----
<VMCA/Subordinate CA Certificate>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<Intermediate CA Certificate (if applicable)>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<Root CA Certificate>
-----END CERTIFICATE-----
For detailed certificate chaining guidance, see: KB 368727 - How to correctly chain custom root/intermediate SSL certificates to import into vCenter
Stop all vCenter services, then start only the services required for certificate operations:
service-control --stop --all
service-control --start vmafdd
service-control --start vmdird
service-control --start vmcad
Note: Starting only these three services during certificate work minimizes risk. For more information on service handling, see: KB 340943 - Stop, Start or Restart Services on vCenter Server
If you are replacing an expired intermediate certificate, remove the old certificate from TRUSTED_ROOTS before adding the new one.
Follow the procedure in: KB 326288 - Removing CA Certificates from the TRUSTED_ROOTS store in VECS
⚠️ WARNING: Be absolutely certain you are removing the correct certificate. Removing the wrong certificate can cause irreparable damage to the environment.
For initial subordinate CA setup, replace the VMCA root with your signed certificate:
cd /usr/lib/vmware-vmca/bin/
./certool --rootca --cert=/path/to/rootca_chain.crt --privkey=/path/to/vmca.key
This command:
Publish the new certificate to vmdir to propagate it across all nodes:
cd /usr/lib/vmware-vmafd/bin/
For a single certificate in the chain:
./dir-cli trustedcert publish --cert /path/to/rootca_chain.crt
For multiple certificates in the chain:
./dir-cli trustedcert publish --cert /path/to/rootca_chain.crt --chain
Important: Use the
--chainflag when your certificate file contains more than one certificate (e.g., subordinate CA + intermediate + root).
If you need to expedite the sync rather than waiting for the 5-minute polling interval:
/usr/lib/vmware-vmafd/bin/vecs-cli force-refresh
If you are replacing an expired intermediate, rebuild the Machine SSL certificate chain:
Remove the old Machine SSL certificate:
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT -y
Create the new certificate chain file (machine cert + intermediate + root):
cat machine_certificate.cer intermediate_certificate.cer root_certificate.cer > /var/core/ssl.cer
Import the new certificate chain:
/usr/lib/vmware-vmafd/bin/vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert /var/core/ssl.cer --key /var/core/ssl_key.key
Force refresh VECS again:
/usr/lib/vmware-vmafd/bin/vecs-cli force-refresh
service-control --stop --all
service-control --start --all
Verify all services start successfully and that you can log in to the vSphere Client.
After updating the vCenter intermediate certificate, ESXi hosts managed by this vCenter should have their certificates renewed so they chain to the updated CA.
For detailed ESXi certificate renewal procedures, see: TechDocs - Renew or Refresh ESXi Certificates
Note: ESXi hosts must not be in maintenance mode when renewing certificates. Ensure time synchronization and DNS resolution are working correctly between vCenter and ESXi hosts.
| Topic | Reference |
|---|---|
| Full subordinate CA setup workflow | KB 328308 |
| Reviewing certificates in VECS | KB 321380 |
| Removing CA certs from TRUSTED_ROOTS | KB 326288 |
| Certificate chaining order | KB 368727 |
| MS CA template creation | KB 315271 |
| Service start/stop procedures | KB 340943 |
| Scripted certificate replacement (vCert) | KB 385107 |
| ESXi certificate renewal | TechDocs - Renew ESXi Certificates |
| Full custom certificate replacement | KB 316601 |