In vCenter Server 8.0 Update 3, TLS configuration is done via TLS Profiles.
If you are using Auto Deploy in the environment, please review the below linked article before proceeding with changing the TLS profile, as iPXE does not support NIST_2024, and possibly others.
vCenter Server 8.0 U3
In vCenter 8.0 Update 3 there is a new approach to TLS management. TLS configuration is done via TLS profiles. This is achieved by using the API Explorer in the vCenter Web Client or using CURL on the command line. There is also a script attached to this KB to simplify this procedure.
Depending on your environment, you may need to choose a TLS profile that uses or does not use certain "Cipher Suites".
NOTE: vCenter Server TLS Profiles Update Operation has special requirements on VCHA enabled setups.
Create valid backups or snapshot of the vCenter Server you are changing the TLS configuration on.
Note: You can use the search bar on the right of the API Explorer page to limit the view to what you are looking for (e.g., tls).
Example:
If wanting to change the TLS profile from “COMPATIBLE” to “NIST_2024”, please do the following.
For API > Appliance > “tls/profiles/global/” use this value: { "profile": "NIST_2024" }. Click the "Execute" button.
You can confirm the change was successful by executing the “tls/profiles/global/” GET command. If the value has changed properly, you should see the profile value as “NIST_2024”.
/usr/lib/vmware-vsr/bin/ssl_scanner --host localhost:443 | less
Example output:openssl s_client -connect localhost:443 -tls1_2
openssl s_client -connect localhost:443 -tls1_3
1bee8c95cc8ab1a8145b956f07db3ac2
Note: It may be necessary to repeat the above command to generate a new session ID if the previously generated one becomes expired.curl -k -X GET 'https://localhost/api/appliance/tls/profiles/global' -H 'vmware-api-session-id:1bee8c95cc8ab1a8145b956f07db3ac2'
Example output:COMPATIBLE
" profile.curl -k -X PUT 'http://localhost/api/appliance/tls/profiles/global?vmw-task=true' -H 'vmware-api-session-id: 1bee8c95cc8ab1a8145b956f07db3ac2' -H 'Content-type: application/json' -d '{ "profile": "NIST_2024" }'
Example output:f2f6f330-b298-4a92-a50b-7d1adf91217e:com.vmware.appliance.tls.profiles.global
curl -k -X GET 'https://localhost/api/cis/tasks/f2f6f330-b298-4a92-a50b-7d1adf91217e:com.vmware.appliance.tls.profiles.global?return_all=TRUE' -H 'vmware-api-session-id:1bee8c95cc8ab1a8145b956f07db3ac2'
Example output:You can find the list of Cipher Suites being used for each currently available TLS profile in vSphere from “How vSphere Implements TLS Using TLS Profiles”.
To get a list of enabled/disabled ciphers and TLS versions for each TLS Profile run the following command:curl -k -X GET 'https://localhost/api/appliance/tls/profiles' -H "vmware-api-session-id: 31bee8c95cc8ab1a8145b956f07db3ac2" | jq
To get a list of enabled/disabled ciphers and TLS versions for a specific TLS profile:curl -s -k -X GET 'https://localhost/api/appliance/tls/profiles/COMPATIBLE-NON-FIPS' -H "vmware-api-session-id: 31bee8c95cc8ab1a8145b956f07db3ac2" | jq
Note: Currently there is no "MANUAL" profile available for vCenter, and the existing profiles cannot be changed. You will find that the API Explorer for TLS commands does not provide the “PUT” command for “tls/profiles”, only “GET” commands to list what is already available.
chmod +x TLS_PROFILE.sh