Истек сертификат vCenter 8, простой метод устранения
Добрый день! Рад, что вы вновь посетили IT блог Pyatilistnik. В предыдущей статье мы с вами устраняли ошибки на центре сертификации "Active Directory Certificate Services could not publish a Certificate". Сегодня продолжим траблшутить с сертификатами, но уже у другого сервиса, речь пойдет про vCenter 8, где в какой-то момент перестала работать часть функционала, плагинов. Давайте я все подробно вам опишу и поделюсь элегантным методом, от моего коллеги, как выходить из такой ситуаций. Уверен, что в своей практике вам это сильно может пригодиться.
Описание ситуации
У меня в инфраструктуре есть сервер vCenter 8, в какой-то момент при попытке входа на него, он стал отвечать дольше обычного и после попадания в веб-интерфейс стало появляться очень много ошибок. Первое, что я увидел, это в верхней части:
Authentification failed for one or more vCenter Server system
После этого на главном экране я увидел ряд ошибок, самое главное, там ругалось на сертификат "Certificate status". Зная из своей практики, что если vCenter ругается на сертификат, то его починка это еще то шапито.
Перейдя в соответствующий раздел я понял, что у меня протух мой SSL сертификат и был выпущен новый, но по какой-то причине, что-то пошло не так. В результате чего в разделе "Certificate Management - Trusted Root" висело несколько ошибок и отсутствовали нужные корневые сертификаты. Этот раздел играет важную роль в обеспечении безопасности и аутентификации в среде виртуализации
Error occurred while fetching trusted root certificates: Service not found: com.vmware.vcenter.certificate_management.vcenter.trusted_root_chains
В разделе "Machine SSL", так же висела ошибка, и отсутствовали сертификаты. Раздел Machine SSL в VMware vCenter Server отвечает за управление SSL-сертификатами, которые используются для обеспечения безопасной связи между vCenter Server и другими компонентами инфраструктуры VMware, такими как ESXi хосты, а также клиентами, подключающимися к vCenter.
Error occurred while fetching vmca root cert: Insufficient privileges. Contact the Administrator to get the required privileges.
В целом походив по разным разделам я практически везде получал ошибку:
An unexpected error has occurred
В ряде разделов вообще пропал функционал, просто пропали права доступа:
You have no privileges to view this object or it does not exist
Если возникают подобные проблемы, то нужно еще проверить все ли службы запустились, для этого есть специальный адрес у vCenter:
https://vcenter.pyatilistnik.org:5480/
Переходим на вкладку "Services" и проверяем, что все службы у которых тип запуска выставлен как автоматический, работают. В моем случае у меня не работали и не запускались службы:
- Hybrid vCenter Service
- VMware Certificate Management Service
При попытке их мануально запустить я получал ошибку, в которой предлагали мне скачать архив с support-bundle.
A system error occurred. See logs for details
Как починить vCenter и выпустить новые сертификаты
- 1️⃣ Самый простой и быстрый вариант перевыпустить сертификаты на vCenter, это откатить дату на самом виртуальном сервере, на дату старее чем дата истечения сертификата. В vCenter Server Management перейдите в раздел "Time". Если вы используете NTP сервер, то нужно на время выставить его выключение.
Выберите пункт "Deactivated".
Далее подключитесь к vCenter по ssh или sftp. Если будете использовать WinSCP, то можете получить ошибку "Cannot initialize SFTP protocol. Is the host running an SFTP server", как ее устранить можете почитать.
Подключившись в терминал вы можете воспользоваться утилитой "date".
date MMDDhhmm[[CC]YY][.ss] (Например, чтобы установить время на 15:30 1 января 2024 года, выполните: date 010115302024)
так же удостоверьтесь, что NTP в системе выключен, на случай если сбойнул vCenter Server Management. Для этого посмотрим его статус:
systemctl status ntpd
если он работает, то остановим его:
systemctl stop ntpd
далее уберем автоматический запуск службы NTP:
systemctl disable ntpd
Для полной уверенности еще можем закомментировать в файле ntp.conf все NTP серверы:
sudo nano /etc/ntp.conf (вы можете закомментировать эти строки, добавив символ # в начале каждой строки)
#server 0.pool.ntp.org iburst
#server 1.pool.ntp.org iburst
Далее перезагружаемся. После перезагрузки зайдите опять в vCenter Server Management и удостоверьтесь, что у вас запустились все службы с автоматическим стартом. У меня все сразу стало хорошо, после входу на сам vCenter вс ошибки ушли.
Теперь вам остается только сделать перевыпуск сертификата, выбрав его и нажав "renew SSL". Все поздравляю вы успешно устранили ошибку "Error occurred while fetching trusted root certificates: Service not found: com.vmware.vcenter.certificate_management.vcenter.trusted_root_chains".
- 2️⃣Второй метод это использование утилиты lsdoctor.
Скачать lsdoctor у меня или у официального вендора, но там может ее уже и не быть.
Далее вы устанавливаете lsdoctor и запускаете с параметром -t, --trustfix. Использование этих ключей позволит вам выявить проблемы с доверием SSL для различных служб. Утилита попробует для MACHINE_SSL_CERT все проверить и поправить по возможности. Хочу отметить, что это помогает не всегда. так что готовьте бубен.
На этом у меня все. и я надеюсь. что вы починили ваш vCenter. С вами был Иван Сёмин. автор и создатель IT портала Pyatilistnik.org.