Замена SSL-сертификата для веб-портала (zVirt 3.3 – 4.5)
| Данная инструкция актуальна только для zVirt версии 3.3 – 4.5. |
Сертификат стороннего ЦС (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Если apache.p12 содержит также промежуточные сертификаты, используйте следующую команду:
openssl pkcs12 -in /etc/pki/ovirt-engine/keys/apache.p12 -nokeys -clcerts > /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 -
В конфигурационном файле /etc/ovirt-engine/backend/backend.conf сервиса измените параметр
SERVER_SSL_KEY_STORE_PASSWORD(если строка отсутствует - добавьте), для которого укажите пароль от вашего сертификата /root/apache.p12. Если пароль не используется, то оставьте поле пустым (без кавычек:SERVER_SSL_KEY_STORE_PASSWORD=)Пример 1. Пример содержимого файла /etc/ovirt-engine/backend/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