Как поменять сертификаты для связки VMware Vcenter Server, Replication Server и Site Recovery Manager

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Всем привет!

Все кто используют продукты vmware, знают или не знаю, что проблема с сертификатами может принести много боли и страдания. Поэтому чтобы нам не наступить на эти грабли я покажу как сделать и поменять сертификаты для таких продуктов как:

  • VMware Vcenter Server 6.7
  • VMware Replication Server 8.3
  • VMware Site Recovery Manager 8.3

Для этого нам понадобятся:

  • Сертификаты
  • Putty
  • Немного терпения

Подготовка сертификатов, я буду использовать рядовой windows server 2019 с ролью Служба сертификатов Active Directory и openssl v1.1.1h

Скачать можно тут

1. Создание сертификатов


Я буду использовать локальный сервер выдачи сертификатов, но данный способ подойдет для выпуска сертификатов и на коммерческих площадках.

Подготовим запросы к центру сертификации.

Я дал имена типа FQDN:

  • Vcenter Server имеет имя vc.home.local и ip 192.168.233.11
  • VMware Replication Server я назвал как vr.home.local и ip 192.168.233.12
  • VMware Site Recovery Manage также srm.home.local и ip 192.168.233.13

Для этих имен будем готовить запросы и закрытые ключи в программе openssl. Для этого изготовим небольшой конфигурационный файл vc.cfg с содержимым. Далее для каждого нового сервера я буду менять содержимое этого файла подставляя имена серверов и ip адреса:

[req]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
[req_distinguished_name]
countryName = RU
stateOrProvinceName = RO
localityName = RnD
organizationName = HOME
commonName = vc.home.local (меняем)
emailAddress = root@home.local
[v3_req]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment, keyAgreement
subjectAltName = @alt_names
[alt_names]
DNS.1 = vc.home.local (меняем)
IP.2 = 192.168.233.11 (меняем)

Далее используем openssl

1.1 Делаем vc.home.local

openssl req -batch -new -newkey rsa:2048 -nodes -keyout vc.home.local.key -out vc.home.local.req -config vc.cfg

1.2 Меняем имена и ip сервера в vc.cfg и выпускаем ключ и запрос для vr.home.local

openssl req -batch -new -newkey rsa:2048 -nodes -keyout vr.home.local.key -out vr.home.local.req -config vc.cfg

1.3 Меняем имена и ip сервера в vc.cfg и выпускаем ключ и запрос для srm.home.local

openssl req -batch -new -newkey rsa:2048 -nodes -keyout srm.home.local.key -out srm.home.local.req -config vc.cfg

1.4 Дополнительно понадобятся сертификаты для служб vcenter (vpxd, vsphere-webclient, vpxd-extension)
делаем их командой:

openssl req -new -newkey rsa:2048 -nodes -keyout vpxd.key -out vpxd.req

Мы попадем в небольшой визард, там мы введем информацию о себе или о компании. Обязательно в поле «Common Name» мы пишем имя службы. Повторяем процедуру для оставшихся служб. На выходе у нас получается закрытый ключ и запрос на сертификат.



Генерация ключа и запроса на сертификат


Теперь все запросы и ключи готовы приступим к выдаче сертификата. Переходим в центр выдачи сертификатов. Запускаем консоль Центр сертификации.



Далее нажимаем правой кнопкой мышки (пкм) на корне сервера и выбираем выдать новый запрос.



Выбираем наш файл запроса, с расширением req.

Переходим в меню Запросы в ожидании. Если у вас там пусто, нажмите F5 и обновиться окно. Далее жмем пкм, и выбираем Выдать:



Далее переходим в меню Выданные сертификаты и открываем наш сертификат.



Далее нам нужно сохранить его на диск. Для этого переходим во вкладку Состав и нажимаем кнопку Копировать в файл. Далее появиться визард для сохранения файлы, нам нужно выбрать Base64 и имя файла в данном случае vpxd.crt:



Сохранение сертификата.

Повторяем процедуру выдачи для всех наших сертификатов/

Нам еще понадобится корневой сертификат. Для этого откроем любой сертификат, перейдем во вкладку Путь сертификации выберем наш корневой сертификат и нажмем кнопку Посмотреть сертификат. Далее также его сохраним как и все предыдущие.



И это еще не все для сервера VMware Replication Server и VMware Site Recovery Manager. Нам понадобиться контейнер сертификата и ключа. pfx файл, сделать его очень легко, нам понадобиться закрытый ключи и файл сертификата:

openssl pkcs12 -export -out vr.home.local.pfx -inkey vr.home.local.key -in vr.home.local.crt

OpenSSL попросить задать пароль, придумываем пароль и на выходе получаем заветный файл.
На этом создание сертификатов закончим перейдем к их установке.

2. Начнем менять с Vcenter


Для этого мы заходим в раздел администрирования, и переходим в раздел сертификаты. Логинимся администратором.



Раздел для управления сертификатами.

Далее попав в панель управления первым делом добавим корневой сертификат или Trusted Root Certificates. Прокручиваем в самый конец и жмем ADD. Выбираем наш сертификат ca.crt



Add Trusted Root Certificates

Далее меняем текущие сертификаты через пункт меню Replace:



Выбираем сертификаты которые мы создали для vcenter:
Для служб мы выбираем сертификаты служб созданных в пункте 1.4

Для сертификатов __MACHINE_CERT и machine сертификат vc.home.local, созданный в пункте 1.1



Мы заменили все сертификаты, которые нам доступны из панели управления. Если у вас
конфигурация, в которой отсутствую компоненты VMware Replication Server и VMware Site Recovery Manager, то на этом можно поставить точку и после перезагрузки сервера наслаждаться работой VCentre. Если вы используете автономный сервер по выдаче сертификатов, советую делать сертификаты на 10 лет и более. Если вы покупаете то тут смотреть по обстоятельствам.

Для корректного опознавания вашими браузерами сертификатов, необходимо корневой сертификат установить в хранилище сертификатов операционной системы.

3. Меняем сертификат на сервере VMware Replication Server


Начнем с того что на сервер vr необходимо установить корневой сертификат, т.к в штатном веб интерфейсе его нет. Для этого нам нужно зайти на сервер по ssh, но по умолчанию он выключен. Давай включим его. Открываем консоль виртуальной машины и логинимся рутом.
Активируем сервер ssh.

/usr/bin/enable-sshd.sh

После этого можно подключиться к серверу через putty.

Все root ca сертификаты лежать в контейнере jks по пути /opt/vmware/hms/security/hms-truststore.jks

Но контейнер имеет пароль, давайте узнаем его командой:

/opt/vmware/hms/bin/hms-configtool -cmd list | grep keystore

Далее на сервер сохраняем наш ca.crt, я обычно это делаю через текстовые редакторы, на локальном компьютере открываю сертификат блокнотом копирую в буфер обмена, на удаленной машине с помощью редактора vi вставляю и сохраняю. После этого мы можем наш сертификат записать в контейнер командой:

/usr/java/default/bin/keytool -import -trustcacerts -alias root -file /root/ca.crt -keystore /opt/vmware/hms/security/hms-truststore.jks -storepass тут пароль который мы узнали

Далее на запрос добавления говорим yes. Все, мы успешно добавили наш корневой сертификат.

Заходим в панель управления сервером по адресу vr.home.local:5480

Переходим во вкладку Configuration, поле Upload PKCS12 (*.pfx) file
выбираем наш pfx файл. жмем upload and install



конфигурация vr сервера.

После рестарта веб сервера и логина, пытаемся сохранить конфигурацию кнопкой Save and Restart Service:



И получаем ошибку:

Unhandled exception com.vmware.vim.vmomi.client.exception.SslException: javax.net.ssl.SSLException: Certificate thumbprint mismatch, expected:

Сервер нам говорит что отпечатки сертификатов служб вцентра не совпадают.

Открываем putty и подключаемся к нашему вцентру vc.home.local

Запускаем bash командой shell:



Переходим в каталог:

cd /usr/lib/vmidentity/tools/scripts/

И смотрим состояние данной службы:

./lstool.py list --url https://localhost/lookupservice/sdk --no-check-cert --ep-type com.vmware.cis.cs.identity.sso 2>/dev/null



Если открыть в текстовом редакторе наш сертификат vc.home.local.crt, и сравнить, то окажется что сертификаты разные. Дело в том что веб интерфейс вцентра меняет не все сертификаты.

Копируем содержимое сертификата в фаил /tmp/old.crt, не забываем что содержимое сертификата должно быть между тегов -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----

Должно получиться вот так:



Теперь открываем в текстовом редакторе наш новый сертификат вцентра vc.home.local.crt
и копируем его на vc в фаил /tmp/new.crt

Далее выясняем хэш sha1 файла /tmp/old.crt, он там понадобиться чтобы заменить старые сертификаты на новый.

openssl x509 -in /tmp/old.crt -noout -fingerprint -sha1

Далее запускаем скрипт по замене:

./ls_update_certs.py --url https://vc.home.local/lookupservice/sdk --fingerprint 86:0D:BB:---ВАШ ХЭШ----:C7:0E:D1:3E:17:39 --certfile /tmp/new.crt --user administrator@home.local --password ВашПароль

В конце работы скрипта в отчете будет количество замененных сертификатов.

После этого переходим на vr.home.local:5480 и сохраняем конфигурацию. Если вы сделали все правильно сервер должен успешно сохранить конфигурацию и запустить службу vr сервера.



3. Замена сертификата на VMware Site Recovery Manage


На этом сервере все делается из веб интерфейса в меню Certificate.

Заходим в административную панель srm.home.local:5480

  1. Добавляем наш root ca кнопкой ADD
  2. Меняем текущий сертификат кнопкой CHANGE



На этом мы закончили смену всех сертификатов.

Всем спасибо!
Источник: https://habr.com/ru/post/527826/


Интересные статьи

Интересные статьи

Маркетплейс – это сервис от 1С-Битрикс, который позволяет разработчикам делиться своими решениями с широкой аудиторией, состоящей из клиентов и других разработчиков.
Однажды, в понедельник, мне пришла в голову мысль — "а покопаюсь ка я в новом ядре" (новым относительно, но об этом позже). Мысль не появилась на ровном месте, а предпосылками для нее стали: ...
8 октября вышла коробочная версия VMmanager 6 — новой панели управления виртуализацией. Теперь её можно установить на сервер и использовать для продажи виртуальных машин или управления собств...
Предисловие Довольно часто пользователи, разработчики и администраторы СУБД MS SQL Server сталкиваются с проблемами производительности БД или СУБД в целом, поэтому весьма актуальным является мон...
Тема статьи навеяна результатами наблюдений за методикой создания шаблонов различными разработчиками, чьи проекты попадали мне на поддержку. Порой разобраться в, казалось бы, такой простой сущности ка...