В vCenter есть проблема с истечением срока действия STS сертификата. Я уже натыкался на неё, но у меня проблема была шире, там вообще все сертификаты протухли.
Сертификат используется для выпуска SAML-токенов, от него зависит аутентификация всех сервисов внутри vCenter. Если сертификат истекает, перестаёт работать всё.
Раньше сертификат генерировался на 10 лет, этого хватало. 1 марта 2018 г. CA/Browser Forum, отраслевая организация, состоящая из центров сертификации (CA), веб-браузеров и операционных систем, приняла бюллетень 193, чтобы сократить максимальный срок действия сертификатов SSL/TLS до двух лет (825 дней, если быть точным). Все организации бросились исполнять, включая VMware, и заменять сроки действия сертификатов везде где только можно. И где нельзя. В результате, в vCenter сертификат STS тоже стал жить два года, хотя он самоподписанный. Изначально механизм замены этого сертификата не был предусмотрен.
Когда сертификат истекает, получаем ошибку "Signing certificate is not valid" в VCSA 6.5, 6.7, 7.0 и даже в 8.0.
Для решения этого вопроса была выпущена инструкция:
https://kb.vmware.com/s/article/76719
Для исправления нам нужен скрипт fixsts.sh, который приложен к инструкции, я добавил его в Сборку для VMware.
Забегаю вперёд. Со временем выяснилось, что скрипт исправляет не все проблемы. Рекомендуют использовать в certool недокументированный ключ --genCIScert, который автоматически добавляет сертификат в Certificate Store. Не долго думая я добавил это исправление в fixsts и сохранил как fixstsCIS.sh в той же сборке.
В vCenter Server 7.0 можно продлить срок действия STS до срока действия VMCA в Administration → Certificate Management → Refresh with vCenter Certificate. В vCenter 6.7 и 6.5 так не получится. Если STS сертификат ещё не истёк, то посмотреть его можно в версии Flash.
Запускаем Flash Player после окончания поддержки
Administration → Single Sign-On → Configuration → Certificates → STS Signing.
У меня в примере со сроком действия сертификата STS всё в порядке, но это тестовый стенд, давайте обновим STS сертификат.
Делаем снапшот сервера!
Загружаем скрипт fixsts.sh в папку /tmp в vCenter. Если WinSCP ругается, то:
chsh -s /bin/bash
Я не заморачиваюсь, просто перекидываю содержимое скрипта через vi.
Даём права на исполнение.
cd /tmp
chmod +x fixsts.sh
Запускаем скрипт.
./fixsts.sh
Понадобится пароль учётной записи administrator@vsphere.local.
Скрипт отработал, перезапускаем службы.
service-control --stop --all && service-control --start --all
Всё.
Сертификат выпустился на 2 года.
Срок действия сертификата не может превышать срок машинного сертификата. Если машинный сертификат истекает, он будет тоже перевыпущен.