Disabling TLSv1.0 and enabling TLSv1.1 and/or TLSv1.2 will be a multi-phase process in a vSphere environment:
- Install the TLS Reconfigurator Utility on the vCenter Server and Platform Services controller; if the Platform Services Controller is embedded on the vCenter Server, users only need to install the utility on vCenter Server.
- Disable vCenter Server's use of TLSv1.0 and enable the use of TLSv1.1 and TLSv1.2 or use TLSv1.2 exclusively.
- The ESXi hosts managed by the vCenter Server will then be updated to disable the use of TLSv1.0 and enable the use of TLSv1.1 and TLSv1.2 or use TLSv1.2 exclusively. It can either be modified at per-host or per-cluster level.
- The Platform Services Controller would be updated to disable the use of TLSv1.0 and enable the use of TLSv1.1 and/or TLSv1.2. vCenter Server 6.0 Update 1 or earlier does not support Platform Service Controller with only TLSv1.2 enabled. Before disabling TLSv1.0 on PSC, upgrade the vCenter Server to the same version as the PSC or keep TLSv1.0 enabled on the PSC machine.
The
TLS Reconfiguration Utility is delivered with two components to cover managing the TLS protocols for vCenter Server and the Platform Services Controller with the
VcTlsReconfigurator component and ESXi hosts and clusters with the EsxTlsReconfigurator component. These components are located in these directories:
For vCenter Server for Windows:
- C:\Program Files\VMware\CIS\vSphereTLSReconfigurator\VcTlsReconfigurator
- C:\Program Files\VMware\CIS\vSphereTLSReconfigurator\EsxTlsReconfigurator
For vCenter Server Appliance:
- /usr/lib/vmware-vSphereTlsReconfigurator/VcTlsReconfigurator
- /usr/lib/vmware-vSphereTlsReconfigurator/EsxTlsReconfigurator
Installing the TLS Reconfiguration Utility
The
TLS Reconfiguration Utility is an independent downloadable utility. Users must install the utility to disable TLSv1.0 within their vSphere environment. Follow these steps on installing the TLS Reconfiguration Utility:
- Go to customerconnect.vmware.com for vSphere.
- Download the following depending on the use of Windows or Appliance in the environment.
For vCenter Server for Windows: VMware-vSphereTlsReconfigurator-6.0.0-5051284.x86_64.msi
For vCenter Server Appliance: VMware-vSphereTlsReconfigurator-6.0.0-5051284.x86_64.rpm
- Upload the file to vCenter Server and/or Platform Services Controller:
For the vCenter Server Appliance and Platform Services Controller Appliance, use an SCP client to upload the file.
For Windows vCenter Server or Windows Platform Services Controller, copy the appropriate file.
- For vCenter Server for Windows:
- On the Windows Server running vCenter Server, log in as an administrative user.
- Locate the VMware-vSphereTlsReconfigurator-6.0.0-5051284.x86_64.msi
- Install the MSI file.
- For vCenter Server Appliance:
- Connect to the vCenter Server Appliance with an SSH session and root credentials.
- Run this command to enable the Bash shell
shell.set --enabled true - Run this command to access the Bash shell
shell - In the Bash shell, locate the directory where the VMware-vSphereTlsReconfigurator-6.0.0-5051284.x86_64.rpm was uploaded.
- Run this command:
rpm -Uvh VMware-vSphereTlsReconfigurator-6.0.0-5051284.x86_64.rpm
Disabling TLSv1.0 using the TLS Reconfiguration Utility
This section covers; disabling TLSv1.0 and enabling TLSv1.1 and TLSv1.2, disabling TLSv1.0 and TLSv1.1, and enabling only TLSv1.2 across vCenter Server, Platform Services Controller, and ESXi hosts. Disabling protocols must be done in this order:
- vCenter Server
- ESXi hosts
- Platform Services Controller
Warning: Before proceeding, ensure all of these elements are running versions compatible with TLSv1.0 disablement.
For vCenter Server and Platform Services Controller for Windows
- Connect to the Windows Server.
- Open an administrative command prompt.
- Change directory to the vSphereTlsReconfigurator using this command
cd C:\Program Files\VMware\CIS\vSphereTlsReconfigurator\ - Manually back up all of the configurations for all supported services on vCenter Server and Platform Services Controller:
Note: The TLS Reconfigurator Utility will perform a backup operation each time a modification against the vCenter Server or Platform Services Controller has been executed. Use this process only if you need to create a backup to a specific user directory.
- Change directory to the VcTlsReconfigurator using this command:
cd VcTlsReconfigurator
- Execute this command to perform a backup:
directory_path\VcTlsReconfigurator> reconfigureVc backup
By default, this will output to this directory:
c:\users\<current user>\appdata\local\temp\<year><month><day>T<time></time>
To output to a specific directory, run this command
directory_path\VcTlsReconfigurator> reconfigureVc backup -d <backup directory path>
- A successful backup will look like this:
vCenter Transport Layer Security reconfigurator, version=6.0.0, build=8482376
For more information, refer to the following article: Log file: "C:\ProgramData\VMware\vCenterServer\logs\vmware\vSphere-TlsReconfigurator\VcTlsReconfigurator.log".
================= Backing up vCenter Server TLS configuration ==================
Using backup directory: c:\users\admini~1\appdata\local\temp\1\20170202T054311
Backing up: vmsyslogcollector
Backing up: vspherewebclientsvc
Backing up: vmware-autodeploy-waiter
Backing up: rhttpproxy
Backing up: VMwareSTS
Backing up: VMWareDirectoryService
- Execute this command to perform restore:
reconfigureVc restore -d <tmp directory / custom backup directory path>
- An output similar to the following is displayed:
vCenter Transport Layer Security reconfigurator, version=6.0.0, build=5051284 For more information refer to the following article: https://kb.vmware.com/s/article/2148819 Log file: "C:\ProgramData\VMware\vCenterServer\logs\vmware\vSphere-TlsReconfigurator\VcTlsReconfigurator.log".
vCenter Server is going to be restarted. Do you want to continue (Y/N)? Y ==================== Scanning vCenter Server TLS endpoints =====================
+--------------------------+-------------------+----------------+
| Service Name | TLS Endpoint Port | TLS Version(s) |
+--------------------------+-------------------+----------------+
| vmsyslogcollector | 1514 | TLSv1.2 |
| vspherewebclientsvc | 9443 | TLSv1.2 |
| vmware-autodeploy-waiter | | NOT RUNNING |
| rhttpproxy | 443 | TLSv1.2 |
| VMwareSTS | 7444 | TLSv1.2 |
| VMWareDirectoryService | 636 | TLSv1.2 |
| VMWareDirectoryService | 11712 | TLSv1.2 |
+--------------------------+-------------------+----------------+
================== Restoring vCenter Server TLS configuration ==================
Using backup directory: c:\users\lab1ad~1\appdata\local\temp\20170224T150604
Restoring: vmsyslogcollector
Restoring: vspherewebclientsvc
Restoring: vmware-autodeploy-waiter
Restoring: rhttpproxy
Restoring: VMwareSTS
Restoring: VMWareDirectoryService
========================== Restarting vCenter Server ===========================
- Update all of the configuration for all supported services on the vCenter Server.
Note: For products communicating to the vCenter Server which still require TLSv1.0 to be enabled, this will cease connectivity.
- Disable TLSv1.0 on the vCenter Server, and enable a higher versions of TLSv1.x.
- To disable TLSv1.0 and enable both TLSv1.1 and TLSv1.2, execute this command to perform a reconfiguration:
directory_path\VcTlsReconfigurator> reconfigureVc update -p TLSv1.1 TLSv1.2
- To disable TLSv1.0 and TLSv1.1, and enable only TLSv1.2, execute this command to perform a reconfiguration:
directory_path\VcTlsReconfigurator> reconfigureVc update -p TLSv1.2
- Repeat this on remaining vCenter Server.
- Update the configuration for all supported services on the ESXi hosts managed by each of the vCenter Servers.
- Change directory to the EsxTlsReconfigurator using this command:
cd ..\EsxTlsReconfigurator
- Disable TLSv1.0 on the ESXi hosts, and enable a higher versions of TLSv1.x. This can be done either on a per-host or per-cluster bases in addition to disabling TLSv1.0 and enabling TLSv1.1 and TLSv1.2 or disabling TLSv1.0 and enabling only TLSv1.2.
Note: If --protocol or -p is not included, this will default to TLSv1.2 only
- To disable TLSv1.0 and enable both TLSv1.1 and TLSv1.2 on an individual ESXi host inside of vCenter Server, execute this command to perform a reconfiguration:
directory_path\EsxTlsReconfigurator> reconfigureEsx vCenterHost -h <ESXi_Host_Name> -u <Administrative_User> -p TLSv1.1 TLSv1.2
- To disable TLSv1.0 and TLSv1.1, and enable only and TLSv1.2 on an individual ESXi host inside of vCenter Server, execute this command to perform a reconfiguration:
directory_path\EsxTlsReconfigurator> reconfigureEsx vCenterHost -h <ESXi_Host_Name> -u <Administrative_User> -p TLSv1.2
- To disable TLSv1.0 and enable both TLSv1.1 and TLSv1.2 on an vCenter Server Host Cluster, execute this command to perform a reconfiguration:
directory_path\EsxTlsReconfigurator> reconfigureEsx vCenterCluster -c <Cluster_Name> -u <Administrative_User> -p TLSv1.1 TLSv1.2
- To disable TLSv1.0 and TLSv1.1, and enable only and TLSv1.2 on an vCenter Server Host Cluster, execute this command to perform a reconfiguration:
directory_path\EsxTlsReconfigurator> reconfigureEsx vCenterCluster -c <Cluster_Name> -u <Administrative_User> -p TLSv1.2
- Once completed, the hosts will be flagged for reboot. Reboot the ESXi hosts in order to complete the TLS protocol changes.
- Repeat this on the next cluster or ESXi host within the managing vCenter Server as appropriate.
- Update all of the configuration for all supported services on the Platform Services Controller:
Note: If you have older 6.0.x or 5.5.x vCenter Servers still connected to the Platform Services Controller, this step will cause the vCenter Servers to stop communicating to the PSC. Only proceed with this step after confirming that all vCenter Servers are running a compatible version.
- Change directory to the VcTlsReconfigurator using this command:
cd C:\Program Files\VMware\CIS\vSphereTlsReconfigurator\VcTlsReconfigurator
- Disable TLSv1.0 on the Platform Services Controller, and enable a higher versions of TLSv1.x.
Note: If --protocol or -p is not included, this will default to TLSv1.2 only
- To disable TLSv1.0 and enable both TLSv1.1 and TLSv1.2, execute this command to perform a reconfiguration:
directory_path\VcTlsReconfigurator> reconfigureVc update -p TLSv1.1 TLSv1.2
- To disable TLSv1.0 and TLSv1.1, and enable only and TLSv1.2, execute this command to perform a reconfiguration:
directory_path\VcTlsReconfigurator> reconfigureVc update -p TLSv1.2 - To disable TLSv1.0 and enable both TLSv1.1 and TLSv1.2 on an standalone ESXi Server, execute this command to perform a reconfiguration
directory_path/EsxTlsReconfigurator> ./reconfigureEsx ESXiHost -h <ESXi_Host_Name> -u <User> -p TLSv1.1 TLSv1.2 - To disable TLSv1.0 and TLSv1.1, and enable only and TLSv1.2 on an standalone ESXi Server, execute this command to perform a reconfiguration
directory_path/EsxTlsReconfigurator> ./reconfigureEsx ESXiHost -h <ESXi_Host_Name> -u <User> -p TLSv1.2
- Repeat this operation on the remaining Platform Services Controller in the vSphere domain.
Once completed, all vCenter Servers, the managed ESXi hosts and the associated Platform Services Controllers will no longer be using TLSv1.0.
For vCenter Server Appliance and Platform Services Controller Appliance
- Connect to the vCenter Server Appliance using an SSH session.
- Run this command to enable the Bash shell
shell.set --enabled true
- Run this command to access the Bash shell
shell
- In the Bash shell, change directories to this directory
cd /usr/lib/vmware-vSphereTlsReconfigurator/ - Manually backup all of the configurations for all supported services on the vCenter Server and Platform Services Controller
Note: The TLS Reconfigurator Utility will perform a backup operation each time it is executed. Use this process only if you need to create a backup to a specific user directory.
- Change the directory to VcTlsReconfigurator with this command:
cd VcTlsReconfigurator
- Execute this command to perform a backup:
directory_path/VcTlsReconfigurator> ./reconfigureVc backup
By default, this will output to this directory:
/tmp/<year><month><day>T<time></time>
In order to output to a specific directory, use this command:
directory_path/VcTlsReconfigurator> ./reconfigureVc backup -d <backup directory path>
- Update all of the configuration for all supported services on the vCenter Server.
Note: If you have products communicating to the vCenter Server which still require TLSv1.0 to be enabled, this will cease connectivity.
- Disable TLSv1.0 on the vCenter Server, and enable a higher versions of TLSv1.x.
- To disable TLSv1.0 and enable both TLSv1.1 and TLSv1.2, execute this command to perform a reconfiguration:
directory_path/VcTlsReconfigurator> ./reconfigureVc update -p TLSv1.1 TLSv1.2
- To disable TLSv1.0 and TLSv1.1, and enable only and TLSv1.2, execute this command to perform a reconfiguration:
directory_path/VcTlsReconfigurator> ./reconfigureVc update -p TLSv1.2
- Repeat this on the next vCenter Server as appropriate.
- Update all of the configuration for all supported services on the ESXi hosts. This can be done either on a per-host or per-cluster bases in addition to disabling TLSv1.0 and enabling TLSv1.1 and TLSv1.2 ordisabling TLSv1.0 and enabling only TLSv1.2.
- Change directory to the EsxTlsReconfigurator using this command:
cd ../EsxTlsReconfigurator
- Disable TLSv1.0 on the ESXi hosts, and enable a higher versions of TLSv1.x. This can be done either on a per-host or per-cluster bases in addition to disabling TLSv1.0 and enabling TLSv1.1 and TLSv1.2 or disabling TLSv1.0 and enabling only TLSv1.2.
Note: If --protocol or -p is not included, this will default to TLSv1.2 only.
- To disable TLSv1.0 and enable both TLSv1.1 and TLSv1.2 on an individual ESXi inside of vCenter Server, execute this command to perform a reconfiguration:
directory_path/EsxTlsReconfigurator> ./reconfigureEsx vCenterHost -h <ESXi_Host_Name> -u <Administrative_User> -p TLSv1.1 TLSv1.2
- To disable TLSv1.0 and TLSv1.1, and enable only and TLSv1.2 on an individual ESXi inside of vCenter Server, execute this command to perform a reconfiguration:
directory_path/EsxTlsReconfigurator> ./reconfigureEsx vCenterHost -h <ESXi_Host_Name> -u <Administrative_User> -p TLSv1.2
- To disable TLSv1.0 and enable both TLSv1.1 and TLSv1.2 on an ESXi Cluster, execute this command to perform a reconfiguration:
directory_path/EsxTlsReconfigurator> ./reconfigureEsx vCenterCluster -c <Cluster_Name> -u <Administrative_User> -p TLSv1.1 TLSv1.2
- To disable TLSv1.0 and TLSv1.1, and enable only and TLSv1.2 on an ESXi Cluster, execute this command to perform a reconfiguration:
directory_path/EsxTlsReconfigurator> ./reconfigureEsx vCenterCluster -c <Cluster_Name> -u <Administrative_User> -p TLSv1.2 - To disable TLSv1.0 and enable both TLSv1.1 and TLSv1.2 on an standalone ESXi Server, execute this command to perform a reconfiguration
directory_path/EsxTlsReconfigurator> ./reconfigureEsx ESXiHost -h <ESXi_Host_Name> -u <User> -p TLSv1.1 TLSv1.2 - To disable TLSv1.0 and TLSv1.1, and enable only and TLSv1.2 on an standalone ESXi Server, execute this command to perform a reconfiguration
directory_path/EsxTlsReconfigurator> ./reconfigureEsx ESXiHost -h <ESXi_Host_Name> -u <User> -p TLSv1.2
- Once completed, the hosts will be flagged for reboot. Reboot the ESXi hosts in order to complete the TLS protocol changes.
- Repeat this on the next cluster or ESXi host within the managing vCenter Server as appropriate.
- Update all of the configuration for all supported services on the Platform Services Controller
Note: If you have older vCenter Servers 6.0.x or 5.5.x still connected to the Platform Services Controller, this step will cause the vCenter Servers to stop communicating to the PSC. Only proceed with this step after confirming that all vCenter Servers are running a compatible version.
- Change directory to the VcTlsReconfigurator using this command:
cd /usr/lib/vmware-vSphereTlsReconfigurator/VcTlsReconfigurator
- Disable TLSv1.0 on the Platform Services Controller, and enable a higher versions of TLSv1.x.
Note: If --protocol or -p is not included, this will default to TLSv1.2 only
- To disable TLSv1.0 and enable both TLSv1.1 and TLSv1.2, execute this command to perform a reconfiguration
directory_path\VcTlsReconfigurator> ./reconfigureVc update -p TLSv1.1 TLSv1.2 - To disable TLSv1.0 and TLSv1.1, and enable only and TLSv1.2, execute this command to perform a reconfiguration
directory_path\VcTlsReconfigurator> ./reconfigureVc update -p TLSv1.2
- Repeat this operation on the remaining Platform Services Controller in the vSphere domain.
Once completed, all vCenter Server Appliances, the managed ESXi hosts and the associated Platform Services Controller Appliances will no longer be using TLSv1.0