Symptoms:
Pre-upgrade check fails with error "Certificate validation failed during pre-upgrade check"
In the vCenter logs location var/log/vmware/upgrade/requirements-upgrade-runner.log file, the following are comparable entries:
'description': {'id': 'upgrade.sso.precheck.error.description', 'translatable': 'Certificate has expired', 'localized': 'Certificate has expired'}, 'problemId': None, 'resolution': {'id': 'upgrade.sso.precheck.error.resolution', 'translatable': 'Regenerate certificates for sso and try again', 'localized': 'Regenerate certificates for sso and try again'}}]}},
Pre-check fails when upgrading from vCenter 7 to 8 or 9 or 8 to 9
Legacy Lookup service certificate is "Expired"
An expired 7444 certificate, likely the lookup service certificate, stored in the STS_INTERNAL_SSL_CERT store can be replaced with the machine certificate from the MACHINE_SSL_CERT store using the vCert utility. This process ensures proper functioning of the vCenter Server and its communication with other services.
Pre-upgrade checks were introduced in vCenter Server 7.0 Update 1 and later to identify and resolve known SSO database issues on the vCenter Server Appliance prior to upgrade. The expired 7444 certificate stored in the STS_INTERNAL_SSL_CERT with the machine cert from the MACHINE_SSL_CERT store caused the issue.
There are two available options to address this issue:
OPTION 1:
To resolve this issue, replace the STS_INTERNAL_SSL_CERT with the machine cert from the MACHINE_SSL_CERT store.
Process to replace STS_INTERNAL_SSL_CERT with machine cert from MACHINE_SSL_CERT store:
OPTION 2:
Remove the stale port 7444 by running the lsdoctor tool stalefix option python lsdoctor.py -s
python lsdoctor.py -s”
service-control --stop --all && service-control --start --all
Note: Re-register any external solutions that were previously pointed to the affected node (SRM, vSphere Replication, NSX-V, etc. – See product documentation for instructions)
If this article didn’t solve your issue, kindly raise a case with Broadcom support.
Latest version of lsdoctor takes care of updating STS_INTERNAL_SSL_CERT. In case an old version of lsdoctor.py is used, use the below manual steps to remove STS_INTERNAL_SSL_CERT from VECS
Remove STS_INTERNAL_SSL_CERT from VECS via shell Script and SSH:
chmod +rx Delete_ STS_INTERNAL_SSL_CERT.sh./Delete_ STS_INTERNAL_SSL_CERT.sh