VMware vCenter: истек STS сертификат (SSO не работает)

Описание

При истечении STS (Security Token Service) сертификата в VMware vCenter перестает работать SSO и административный доступ.

Типичные симптомы:

  • невозможен вход в vCenter (UI / API);
  • ошибки авторизации;
  • Invalid credentials;
  • Failed to authenticate token;
  • STS certificate expired;
  • не запускаются или падают сервисы vCenter.

Контекст

Типичные сценарии:

  • истечение срока сертификатов;
  • откат snapshot vCenter;
  • восстановление из бэкапа;
  • рассинхронизация времени (NTP);
  • некорректное обновление vCenter;
  • проблемы с репликацией SSO.

Основная причина

STS сертификат используется для выпуска токенов аутентификации внутри vCenter.

Если он:

  • истёк,
  • поврежден,
  • или не соответствует текущему состоянию SSO,

→ вся цепочка аутентификации перестает работать.


⚠️ Риски

  • полный отказ доступа к vCenter;
  • невозможность управлять инфраструктурой;
  • потеря доступа к API/автоматизации;
  • ошибки при работе связанных систем (backup, monitoring и т.д.).

Диагностика

1. Проверка срока действия сертификатов

openssl x509 -in /var/lib/vmware/vmca/root.cer -noout -dates

2. Проверка всех сертификатов (рекомендуется)

for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list); do
  echo "STORE: $store"
  /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -E "Alias|Not After"
done

Важно:

  • искать просроченные сертификаты;
  • особенно STS, MACHINE_SSL_CERT, TRUSTED_ROOTS.

3. Проверка сервисов

service-control --status

4. Проверка логов

/var/log/vmware/sso/
/var/log/vmware/vmdird/
/var/log/vmware/vpxd/

Решение

⚠️ Перед началом

Обязательно:

  • сделать offline snapshot всех vCenter / PSC;
  • убедиться в корректном времени (NTP);
  • иметь пароль:
    administrator@vsphere.local

1. Подготовка

mkdir -p /tmp/vmware-fixsts
cd /tmp/vmware-fixsts

2. Использование официального скрипта

Оригинальный скрипт:

Скопировать его:

vi fix_sts_cert.sh

Вставить содержимое.


3. Запуск

chmod +x fix_sts_cert.sh
./fix_sts_cert.sh

Во время выполнения потребуется пароль:

administrator@<SSO_DOMAIN>

4. Перезапуск сервисов

service-control --stop --all
service-control --start --all

или:

reboot

5. Пересоздание VMCA Root (если требуется)

Если root сертификат истёк:

/usr/lib/vmware-vmca/bin/certificate-manager

Выбрать:

Option 4 — Regenerate a new VMCA Root Certificate and replace all certificates

Проверка

  • вход в vCenter восстановлен;
  • SSO работает;
  • сервисы в статусе running;
  • нет критичных ошибок в логах.

Частые кейсы

1. После snapshot всё сломалось

Причина:

  • несогласованное состояние SSO

Решение:

  • reset STS сертификата

2. Истек только root

Решение:

  • certificate-manager (Option 4)

3. После фикса не работает

Причина:

  • не пересоздан root
  • или проблема глубже (LDAP / SSO)

4. Hybrid Linked Mode

Требуется:

  • повторная синхронизация сертификатов

5. Проблемы со временем

Проверка:

ntpq -p

Ограничения

  • не исправляет проблемы репликации SSO;
  • не решает проблемы инфраструктуры;
  • требует консольного доступа;
  • критично выполнять с snapshot.

Когда использовать

  • истёк STS сертификат;
  • не работает SSO;
  • ошибки авторизации;
  • после восстановления или snapshot.

Связанные материалы