Для продления сертификата STS до 10 лет проще всего обновить vCenter Server до версии 7.0, но если вы застряли на версии 6.x, то можете попробовать такой способ:
Сделайте офлайн snapshot 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, но пока лучших вариантов не нашлось.
Обновление от 09.08.2022
Оказывается у GSS есть навороченный скрипт vCert.sh (зеркало) для починки всего связанного с сертификатами, кроме продления solution users до 10 лет.
Обновление от 02.11.2022
Новые баги в комментариях.
Обновление от 25.04.2025
Полуофициальный vCert.sh заменил официальный vCert.py из KB385107 с идентичным UI и набором фич.
Комментариев нет:
Отправить комментарий