В vCenter есть проблема с истечением срока действия STS сертификата. Сертификат используется для выпуска SAML-токенов, от него зависит аутентификация всех сервисов внутри vCenter. Если сертификат истекает, перестаёт работать всё.
Приходится продлевать сертификаты вручную. Про это я уже писал ранее.
vCenter — продлеваем STS сертификаты
И вот, снова обратились с проблемой протухшего сертификата на vCenter 6.5. Самое фиговое то, что перестал работать вход под пользователем administrator@vsphere.local. Но можно войти в shell под root.
Можно было бы сбросить сертификаты и заново их накатить:
Однако, не факт что получилось бы без администратора. Да и совсем не хочется этим заниматься из-за одного сертификата. Это часа на четыре работы. Есть, в теории, а теперь уже и на практике, ещё один способ справиться с проблемой: откатить время вспять.
vCenter — замена сертификатов с помощью изменения даты
Заходим в SSH консоль vCenter под пользователем root, запускаем оболочку:
shellКомандой date меняем дату на ту, когда сертификаты ещё были действительны:
date -s "2025-02-22 00:12:30"или
date --set="-2 weeks"И вот, в vCenter 6.5 я меняю дату, ошибок нет, но дата не меняется. Наверное, мешает NTP? Отключаю NTP, настраиваю синхронизацию времени с хостом. Захожу на хост, меняю там дату, она нормально меняется. Перезагружаю vCenter, а там снова верная дата стоит!
Оказалось, что плевать хотел vCenter 6.5 вместе со своими разработчиками на наши настройки NTP и синхронизации времени. На самом деле в vCenter запущена служба systemd-timesyncd, которая синхронизирует время независимо от того, что вы понатыкаете в интерфейсе.
systemd-timesyncd — демон, встроенный в систему systemd, предназначенный для синхронизации системных часов по сети. Это реализация клиента Simple Network Time Protocol (SNTP).
systemctl stop systemd-timesyncd.serviceПосле этого удалось сменить дату и продлить STS сертификаты утилитой fixsts.sh.
