Замена SSL-сертификата для веб-портала (zVirt 3.3 и выше)
Данная инструкция актуальна только для zVirt версии 3.3 и выше. |
Сертификат стороннего ЦС (Certificate Authority) предоставляется в виде PEM-файла. Цепочка сертификатов должна быть полной вплоть до корневого сертификата. Порядок цепочки сертификатов является критически важным, цепочка должна строится от последнего промежуточного ЦС до корневого ЦС. В противном случае при проверке подлинности сервера может произойти сбой.
Закрытый ключ предоставляется в виде KEY-файла.
1. Соглашения
-
/root - расположение файлов полученных от ЦС или в процессе выполнения процедуры замены.
-
/root/apache.p12 - сертификат полученный от ЦС в формате PKCS#12.
Для версии zVirt 4.1 файл должен быть защищен паролем mypass
. -
/root/ca.pem - сертификат ЦС.
-
/root/apache.key - новый закрытый ключ веб-сервера.
-
/root/apache.cer - новый сертификат веб-сервера.
|
2. Описание процедуры замены SSL-сертификата
Внутренний ЦС хранит ключ и сертификат в формате .p12 в каталоге /etc/pki/ovirt-engine/keys/. Сохраните новый файл в том же месте.
-
Создайте резервную копию текущего файла apache.p12, например:
cp -p /etc/pki/ovirt-engine/keys/apache.p12 /etc/pki/ovirt-engine/keys/apache.p12.bck
-
Замените текущий файл новым, например:
cp /root/apache.p12 /etc/pki/ovirt-engine/keys/apache.p12
-
Извлеките закрытый ключ и сертификат.
Если файл защищен паролем, необходимо добавить
-passin pass:<your_password>
, заменив<your_password>
на действительный пароль.openssl pkcs12 -in /etc/pki/ovirt-engine/keys/apache.p12 -nocerts -nodes > /root/apache.key openssl pkcs12 -in /etc/pki/ovirt-engine/keys/apache.p12 -nokeys > /root/apache.cer
-
Если zVirt развернут в режиме Hosted Engine, необходимо перейти в консоль хоста и включить режим глобального обслуживания:
hosted-engine --set-maintenance --mode=global
-
Если сертификат apache.p12 подписан промежуточным сертификатом предприятия, то нужно подготовить файл для добавления в хранилище сертификатов: нужно скомпоновать единый файл ca.pem, где сначала указывается промежуточный сертификат, а после него корневой сертификат.
-----BEGIN CERTIFICATE----- Промежуточный сертификат -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Корневой сертификат -----END CERTIFICATE-----
-
Добавьте сертификат ЦС в список доверенных сертификатов (пароль mypass), например:
keytool -import -file /root/ca.pem -alias companyca -keystore /etc/pki/ovirt-engine/.truststore cp /root/ca.pem /etc/pki/ca-trust/source/anchors update-ca-trust
-
Менеджер управления использует файл /etc/pki/ovirt-engine/apache-ca.pem, который является символической ссылкой на файл /etc/pki/ovirt-engine/ca.pem. Удалите символическую ссылку:
rm /etc/pki/ovirt-engine/apache-ca.pem
-
Сохраните сертификат ЦС, как файл /etc/pki/ovirt-engine/apache-ca.pem:
cp /root/ca.pem /etc/pki/ovirt-engine/apache-ca.pem
-
Создайте резервную копию существующего закрытого ключа и сертификата:
cp /etc/pki/ovirt-engine/keys/apache.key.nopass /etc/pki/ovirt-engine/keys/apache.key.nopass.bck cp /etc/pki/ovirt-engine/certs/apache.cer /etc/pki/ovirt-engine/certs/apache.cer.bck
-
Скопируйте закрытый ключ:
cp /root/apache.key /etc/pki/ovirt-engine/keys/apache.key.nopass
-
Установите владельцем закрытого ключа пользователя root и задайте права доступа 0640:
chown root:ovirt /etc/pki/ovirt-engine/keys/apache.key.nopass chmod 640 /etc/pki/ovirt-engine/keys/apache.key.nopass
-
Скопируйте сертификат:
cp /root/apache.cer /etc/pki/ovirt-engine/certs/apache.cer
-
Установите владельцем сертификата пользователя root и задайте права доступа 0644:
chown root:ovirt /etc/pki/ovirt-engine/certs/apache.cer chmod 644 /etc/pki/ovirt-engine/certs/apache.cer
-
Перезапустите веб-сервер:
systemctl restart httpd.service
-
В конфигурационном файле /usr/share/zvirt-engine/services/zvirt-engine-backend/zvirt-engine-backend.conf сервиса измените параметр
SERVER_SSL_KEY_STORE_PASSWORD
(если строка отсутствует - добавьте), для которого укажите пароль от вашего сертификата /root/apache.p12. Если пароль не используется, то оставьте поле пустым (без кавычек:SERVER_SSL_KEY_STORE_PASSWORD=
)Пример 1. Пример содержимого файла /usr/share/zvirt-engine/services/zvirt-engine-backend/zvirt-engine-backend.confENGINE_DEBUG_ADDRESS=*:8686 JBACKEND_HOME=/usr/share/java/zvirt/ SERVER_SSL_KEY_STORE_PASSWORD=apachep12pass
В zVirt 4.1 используйте пароль mypass
, т.е.SERVER_SSL_KEY_STORE_PASSWORD=mypass
.Для версии zVirt 3.3 предварительно скачайте файлы zvirt-engine-backend.conf и zvirt-engine-backend.py.
Скопируйте их в каталог /usr/share/zvirt-engine/services/zvirt-engine-backend/ с заменой (в примере нужные файлы скачаны в каталог /root):
cp /root/zvirt-engine-backend.py /usr/share/zvirt-engine/services/zvirt-engine-backend/zvirt-engine-backend.py cp /root/zvirt-engine-backend.conf /usr/share/zvirt-engine/services/zvirt-engine-backend/zvirt-engine-backend.conf
Также в zVirt 3.3 вместо параметра
SERVER_SSL_KEY_STORE_PASSWORD
используетсяSSL_PASSWORD
. Например:ENGINE_DEBUG_ADDRESS=*:8686 JBACKEND_HOME=/usr/share/java/zvirt/ SSL_PASSWORD=apachep12pass
-
Перезапустите сервис backend.
systemctl restart zvirt-engine-backend.service
-
Скопируйте файл /etc/ovirt-engine/ovirt-websocket-proxy.conf.d/10-setup.conf и измените индекс в файле на значение, которое больше 10 (например, 99-setup.conf). Добавьте следующие параметры в новый файл (если строки уже присутствуют их необходимо заменить):
SSL_CERTIFICATE=/etc/pki/ovirt-engine/certs/apache.cer SSL_KEY=/etc/pki/ovirt-engine/keys/apache.key.nopass
-
Перезапустите службу websocket-proxy:
systemctl restart ovirt-websocket-proxy.service
-
Если вручную производились изменения файла /etc/ovirt-provider-ovn/conf.d/10-setup-ovirt-provider-ovn.conf или используется файл конфигурации более ранней версии zVirt, необходимо убедиться, что менеджер управления по-прежнему настроен на использование /etc/pki/ovirt-engine/apache-ca.pem в качестве сертификата.
-
Перезапустите сервис ovirt-provider-ovn:
systemctl restart ovirt-provider-ovn.service
-
Перезапустите сервис ovirt-imageio:
systemctl restart ovirt-imageio.service
-
Перезапустите сервис ovirt-engine:
systemctl restart ovirt-engine.service
-
Если zVirt развернут в режиме Hosted Engine, необходимо перейти в консоль хоста и выключить режим глобального обслуживания:
hosted-engine --set-maintenance --mode=none