TL;DR: Тут описано продление внутренних сертификатов VMware vCenter Server до 10 лет с корректными данными в CN, а также vcert, lsdoctor и vdt. Наверное все администраторы VMware vSphere слышали про проблему с истечением двухлетнего сертификата STS, который используется для выпуска SAML-токенов и от него зависит взаимная аутентификация всех сервисов внутри vCenter Server. Похоже разработчкики решили внедрить рекомендации CA/B Forum по сокращению сроков действия сертификатов, но слишком широко применили политику. Пострадавшие запускали fixsts и certificate-manager из KB76719 для восстановления доступа к инфраструктуре и забывали об этом ещё на 2 года. Но решение оказалось неполным и не совсем корректным: Новые сертификаты имеют лишние поля в CN и срок действия в 2 года вместо 10 лет, как после чистой установки. При обновлениях проблема остаётся и начиная с vSphere 7.0 сертификаты solution users скрыли из интерфейса, так что понять о необходимости продления можно лишь из неинформативного аларма. В vCenter Server 7.0 можно продлить срок действия STS до срока действия VMCA в Administration > Certificate Management > Refresh with vCenter Certificate. А вот продление solution users прямо нигде не сказано, зато есть куча статей с рекомендацией использовать VMCA, который "не надо трогать, ведь он сам следит за сертификатами". Решение оказалось в логе скрипта установки /var/log/firstboot/soluser_firstboot.py_<PID>_stdout.log, который использует недокументированные ключ certool --genCIScert для подписи сертификатов и навело на пример в KB88548. Тут можно было закончить, но на всякий случай опишу алгоритм действий с дополнительными шагами для остальных сервисов. Обязательно делаем снепшот выключенной ВМ с vCenter Server, а лучше вначале потренироваться на клоне. Получаем список сертификатов для продления (все они перечислены в KB2111411):for i in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list); do echo STORE $i; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $i --text | egrep "Alias|Not After"; done STORE MACHINE_SSL_CERT   Alias : __MACHINE_CERT   Not After : Jul 12 15:30:07 2024 GMT STORE TRUSTED_ROOTS   Alias : 7f37edfb22a0b3226c4045bdd0dd368f5ce548e1   Not After : Jul 31 12:05:16 2030 GMT STORE TRUSTED_ROOT_CRLS   Alias : ec2c82996b240de563ff338dc7eefb59b5ccdb8c STORE machine   Alias : machine   Not After : Aug  5 11:56:26 2022 GMT STORE vsphere-webclient   Alias : vsphere-webclient   Not After : Aug  5 11:56:27 2022 GMT STORE vpxd   Alias : vpxd   Not After : Aug  5 11:56:27 2022 GMT STORE vpxd-extension   Alias : vpxd-extension   Not After : Aug  5 11:56:28 2022 GMT STORE SMS   Alias : sms_self_signed   Not After : Aug  5 12:10:43 2030 GMT STORE STS_INTERNAL_SSL_CERT   Alias : __MACHINE_CERT   Not After : Jul 12 15:30:07 2024 GMT STORE APPLMGMT_PASSWORD STORE data-encipherment   Alias : data-encipherment   Not After : Feb  2 14:20:38 2023 GMT STORE hvc   Alias : hvc   Not After : Jul 31 12:05:16 2030 GMT STORE wcp   Alias : wcp   Not After : Jul 31 12:05:16 2030 GMT STORE BACKUP_STORE При обновлении до 7.0 сертификаты новых сервисов (hvc и wcp) имеют правильный срок действия. Нам надо продлить machine, vsphere-webclient, vpxd, vpxd-extension и data-encipherment. Экспортируем старые закрытый и открытый ключи:/usr/lib/vmware-vmafd/bin/vecs-cli entry getcert --store machine --alias machine --output /root/backup/machine.crt /usr/lib/vmware-vmafd/bin/vecs-cli entry getkey --store machine --alias machine --output /root/backup/machine.key Удаляем их из хранилища и обновляем данные в VMDIR:/usr/lib/vmware-vmafd/bin/vecs-cli entry delete -y --store machine --alias machine /usr/lib/vmware-vmafd/bin/vecs-cli force-refresh Подписываем новый сертификат, указав необходимые поля (CN и SAN), он будет автоматически добавлен в одноимённое хранилище VECS:/usr/lib/vmware-vmca/bin/certool --genCIScert --privkey=/root/vmca/machine.key --cert=/root/vmca/machine.crt --Name=machine --FQDN=vcenter.mydomain.tld Повторяем пункты с 3 по 5 для оставшихся сервисов vsphere-webclient, vpxd, vpxd-extension и data-encipherment. У последнего есть свой ключ --dataencipherment, который что-то делает в примере из KB, поэтому не забудьте его указать. Обновляем сертификаты расширений по KB2112577. Скачиваем lsdoctor из KB80469 и чиним привязки: python lsdoctor.py --solutionusers python lsdoctor.py --stalefix Перезапускаем сервисы командой service-control --stop --all && service-control --start --all. Прогоняем vSphere Diagnostic Tool и проверяем работу vCenter Server. Общая схема работы VMCA неплохо описана в документации, также могут пригодиться инструкции из KB2111411. Для продления сертификата STS до 10 лет проще всего обновить vCenter Server до версии 7.0, но если вы застряли на версии 6.x, то можете попробовать такой способ: Сделайте офлайн снепшот VCSA! Получите закрытый ключ и сертификат из VMDIR:/opt/likewise/bin/ldapsearch -h localhost -p 389 -b "cn=vsphere.local,cn=Tenants,cn=IdentityManager,cn=Services,dc=vsphere,dc=local" -D "cn=administrator,cn=users,dc=vsphere,dc=local" -w "<пароль>" "(objectclass=vmwSTSTenantCredential)" Сохраните их в формате PEM добавив заголовки "BEGIN PRIVATE KEY" или "BEGIN CERTIFICATE". Подпишите новый сертификат с ключом --genCIScert вместо --gencert из документации:/usr/lib/vmware-vmca/bin/certool --genCIScert --privkey=/root/sts.key --cert=/root/sts.crt --Name=ssoserverSign --FQDN=<VCSA FQDN> Замените сертификат по инструкции через старый флешевый vSphere Web Client. Удалите промежуточное хранилище в VECS, которое было создано в пункте 2:/usr/lib/vmware-vmafd/bin/vecs-cli store delete --name ssoserverSign Проверьте, что всё работает корректно и при необходимости исправьте ошибки или откатитесь на резервную копию. После некоторых операций остаются лишние хранилища и сертификаты в VECS, которые можно убрать для упрощения обслуживания. К ним относятся: Старые сертификаты доверенных CA, их удаление описано в KB2146011. Старые сертификаты в BACKUP_STORE для отката в certificate-manager можно удалить скриптом из KB82560. Хранилище с именем <vCenter FQDN> появляется при переименовании vCenter Server Appliance через VAMI, можно удалить после перезагрузки. STS_INTERNAL_SSL_CERT из KB76144 остаётся при обновлении с vCenter 6.0, перед удалением надо изменить хранилище на MACHINE_SSL_CERT в конфигурации vmware-sts:sed -i 's/STS_INTERNAL_SSL_CERT/MACHINE_SSL_CERT/' /usr/lib/vmware-sso/vmware-sts/conf/server.xml/usr/lib/vmware-vmafd/bin/vecs-cli store delete --name STS_INTERNAL_SSL_CERTservice-control --restart vmware-stsd Надеюсь инструкция будет кому-то полезна и потеряет актуальность с осенним релизом vSphere 8 или обновлением lsdoctor, но пока лучших вариантов не нашлось. Оказывается у GSS есть навороченный скрипт vCert.sh (зеркало) для починки всего связанного с сертификатами, кроме продления solution users до 10 лет. Новые баги в комментариях.