In vSphere 8.0 and later, you can set up the Auto Deploy server to provision ESXi hosts with custom certificates that are signed by a third-party certificate authority (CA) or your own internal CA. By default, the Auto Deploy server provisions ESXi hosts with certificates that are signed by the VMware Certificate Authority (VMCA).
Prior to vSphere 8.0, your options for managing certificates with Auto Deploy include:
- Using vCenter Server and the built-in VMware Certificate Authority (the default).
- Making Auto Deploy a subordinate CA of a third-party CA. In this case, the Auto Deploy SSL key signs the certificates.
In vSphere 8.0 and later, you can upload custom certificates to Auto Deploy that are signed by either a third-party CA or your own internal CA. Auto Deploy associates the custom certificate with either the MAC address or BIOS UUID of the ESXi host. Each time an Auto Deploy host starts, Auto Deploy checks for a custom certificate. If Auto Deploy finds a custom certificate, it uses that certificate instead of generating one through the VMCA.
The high-level steps for this task include:
- Generating the custom certificate request for either a third-party CA or for your own internal CA.
- Obtaining the signed custom certificate (key and certificate) and storing it locally.
- If you are using a third-party CA, and if not previously done, ensuring the root certificate of your CA is uploaded to the TRUSTED_ROOTS store on the vCenter Server.
- Uploading the custom certificate to Auto Deploy and associating the certificate with either the MAC address or BIOS UUID of an ESXi host.
- Booting the ESXi host.
When you assign a custom certificate to an ESXi host, Auto Deploy pushes the certificate to the host on its next boot from Auto Deploy.
Be aware of the following considerations when using custom certificates and Auto Deploy.
- You must use the PowerCLI Add-CustomCertificate, Remove-CustomCertificate, and List-CustomCertificate cmdlets to manage custom certificates used with Auto Deploy. The capability to manage custom certificates is not available in the vSphere Client.
- To refresh a custom certificate used for Auto Deploy, you must run the Add-CustomCertificate cmdlet again.
- Be sure to examine your custom certificate for potential errors. Auto Deploy verifies only that the custom certificate complies with the X.509 certificate standards and that the expiration threshold of the certificate is set to at least 240 days. Auto Deploy does not perform any other certificate validation or checking. To change the certificate threshold, you can run the Set-DeployOption -Key certificate-refresh-threshold cmdlet.
- If you later remove a custom certificate from an ESXi host using the Remove-CustomCertificate cmdlet, you must restart the host for the change to take effect.
For more information about custom certificates and Auto Deploy, see the VMware ESXi Installation and Setup documentation.
Prerequisites
- Request a certificate from your certificate authority. The certificate must meet these requirements.
- Key size: 2048 bits (minimum) to 8192 bits (maximum) (PEM encoded)
- PEM format. VMware supports PKCS8 and PKCS1 (RSA keys). When keys are added to VECS, they are converted to PKCS8.
- x509 version 3
- CRT format
- CA extension set to true
- Key usage of Certificate Signing
- Start time of one day before the current time
Note: vSphere's FIPS certificate only validates RSA key sizes of 2048 and 3072. See Considerations When Using FIPS. - ESXi host MAC address or BIOS UUID. Evaluate which approach makes best sense for your environment. The BIOS UUID is more stable and less subject to change than the MAC address. If you change network adapters in an ESXi host, the MAC address changes. However, the MAC address might be more familiar to work with, and easier to obtain than the BIOS UUID.
- At least PowerCLI version 12.6.0. For more information on Auto Deploy PowerCLI cmdlets, see the Auto Deploy PowerCLI Cmdlet Overview topic in the VMware ESXi Installation and Setup documentation.
Ensure that you have the following privileges:
- Add custom certificate:
- Get custom certificate information: