Система виртуализации и шифрование связи

Замена сертификата ЦС виртуализированного ЦУ

Идентификацию пользователей виртуализированного ЦУ, подключающихся с использованием протокола HTTPS, можно выполнять с помощью сертификата стороннего Центра сертификации (ЦС) организации.

Примечание — Использование сертификата стороннего ЦС для подключений по протоколу HTTPS не влияет на сертификат, используемый для аутентификации между виртуализированным ЦУ и хостами, так как в последнем случае используется самоподписанный сертификат, созданный виртуализированным ЦУ.

Перед выполнением процедуры замены сертификата ЦС виртуализированного ЦУ убедитесь в наличии и характеристиках следующих информационных объектов:

  • Сертификат стороннего ЦС. Цепочка сертификатов должна отслеживаться вплоть до корневого сертификата. В процедуре подразумевается, что сертификат стороннего ЦС находится в /tmp/3rd-party-ca-cert.pem.
  • Закрытый ключ, который планируется для использования с Apache httpd, не должен содержать пароль. В процедуре подразумевается, что закрытый ключ находится в /tmp/apache.key.
  • Сертификат ключа, выпущенный сторонним ЦС. В процедуре подразумевается, что сертификат ключа находится в /tmp/apache.cer.

Важно — Не изменяйте владельца и права доступа к каталогу /etc/pki и его подкаталогам. Права доступа для каталогов /etc/pki и /etc/pki/ovirt-engine должны оставаться правами по умолчанию, то есть "755".

Если закрытый ключ и сертификат ключа были получены из стороннего ЦС в виде файла с расширением *.p12, извлеките их с помощью следующей инструкции, в которой подразумевается, что полученный файл находится в /tmp/apache.p12. В случае других форматов файла свяжитесь со сторонним ЦС для консультации.

Извлечение сертификата и закрытого ключа из файла с расширением *.p12

Примечание — Внутренний ЦС системы хранит закрытый ключ и сертификат ключа в файле /etc/pki/ovirt-engine/keys/apache.p12.

Для извлечения сертификата и закрытого ключа из файла с расширением *.p12:

  1. Создайте резервную копию текущего файла apache.p12:
cp -p /etc/pki/ovirt-engine/keys/apache.p12 \
/etc/pki/ovirt-engine/keys/apache.p12.bck
  1. Замените текущий файл на файл, полученный из стороннего ЦС:
cp /tmp/apache.p12 /etc/pki/ovirt-engine/keys/apache.p12
  1. Извлеките закрытый ключ и сертификат ключа в необходимое местоположение (если файл защищён паролем, добавьте параметр "-passin pass:password", где замените password текущим паролем):
openssl pkcs12 -in /etc/pki/ovirt-engine/keys/apache.p12 \
-nocerts -nodes > /tmp/apache.key
openssl pkcs12 -in /etc/pki/ovirt-engine/keys/apache.p12 \
-nokeys > /tmp/apache.cer

Замена сертификата ЦС виртуализированного ЦУ для Apache

Для замены сертификата ЦС виртуализированного ЦУ для Apache:

  1. Переведите окружение в режим глобального обслуживания:
hosted-engine --set-maintenance --mode=global
  1. Добавьте сертификат стороннего ЦС в хранилище доверенных сертификатов хоста:
cp /tmp/3rd-party-ca-cert.pem /etc/pki/ca-trust/source/anchors
update-ca-trust
  1. Удалите символьную ссылку /etc/pki/ovirt-engine/apache-ca.pem на /etc/pki/ovirt-engine/ca.pem, настроенную в виртуализированном ЦУ по умолчанию:
rm /etc/pki/ovirt-engine/apache-ca.pem
  1. Сохраните сертификат ЦС как /etc/pki/ovirt-engine/apache-ca.pem:
cp /tmp/3rd-party-ca-cert.pem /etc/pki/ovirt-engine/apache-ca.pem
  1. Создайте резервную копию закрытого ключа и сертификата ключа:
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
  1. Скопируйте закрытый ключ в необходимое местоположение:
cp /tmp/apache.key /etc/pki/ovirt-engine/keys/apache.key.nopass
  1. Укажите суперпользователя root в качестве владельца закрытого ключа и настройте права доступа "0640":
chown root:ovirt  /etc/pki/ovirt-engine/keys/apache.key.nopass
chmod 640 /etc/pki/ovirt-engine/keys/apache.key.nopass
  1. Скопируйте сертификат в необходимое местоположение:
cp /tmp/apache.cer /etc/pki/ovirt-engine/certs/apache.cer
  1. Перезапустите веб-сервер Apache:
systemctl restart httpd.service
  1. Создайте новый файл конфигурации /etc/ovirt-engine/engine.conf.d/99-custom-truststore.conf для хранилища доверенных сертификатов со следующими параметрами:
ENGINE_HTTPS_PKI_TRUST_STORE="/etc/pki/java/cacerts"
ENGINE_HTTPS_PKI_TRUST_STORE_PASSWORD=""
  1. Скопируйте файл /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
  1. Перезапустите службу ovirt-websocket-proxy:
systemctl restart ovirt-websocket-proxy.service
  1. Если файл /etc/ovirt-provider-ovn/conf.d/10-setup-ovirt-provider-ovn.conf был отредактирован вручную, убедитесь, что в виртуализированном ЦУ в качестве источника сертификата по-прежнему используется /etc/pki/ovirt-engine/apache-ca.pem.
  2. Для включения в engine-backup возможности обновления при восстановлении создайте новый файл /etc/ovirt-engine-backup/engine-backup-config.d/update-system-wide-pki.sh со следующими строками:
BACKUP_PATHS="${BACKUP_PATHS}
/etc/ovirt-engine-backup"
cp -f /etc/pki/ovirt-engine/apache-ca.pem
/etc/pki/ca-trust/source/anchors/3rd-party-ca-cert.pem
update-ca-trust
  1. Перезапустите службу ovirt-provider-ovn:
systemctl restart ovirt-provider-ovn.service
  1. Перезапустите службу ovirt-engine:
systemctl restart ovirt-engine.service
  1. Отключите глобальный режим обслуживания:
hosted-engine --set-maintenance –mode=none

В результате при подключении пользователей к Порталу администрирования и Порталу ВМ не будет появляться предупреждение о подлинности сертификата, используемого для шифрования трафика HTTPS.

Настройка шифрованного соединения между виртуализированным ЦУ и сервером LDAP

Для настройки шифрованного соединения между виртуализированным ЦУ и сервером LDAP получите корневой сертификат ЦС сервера LDAP, скопируйте этот сертификат на машину виртуализированного ЦУ и создайте сертификат ЦС в кодировке PEM.

Тип файла ключа может быть любым типом, поддерживаемым Java. В приведенной ниже процедуре используется файл ключа с расширением *.jks в формате Java KeyStore.

Примечание — Дополнительные сведения о создании сертификатов ЦС в кодировке PEM, а также об импортировании сертификатов можно посмотреть в разделе "X.509 CERTIFICATE TRUST STORE" файла README в каталоге /usr/share/doc/ovirt-engine-extension-aaa-ldap-версия.

Создание сертификата ЦС в кодировке PEM

Для создания сертификата ЦС в кодировке PEM:

  1. На машине виртуализированного ЦУ скопируйте корневой сертификат ЦС сервера LDAP в каталог /tmp и импортируйте корневой сертификат с применением команды keytool для создания сертификата ЦС в кодировке PEM:
$ keytool -importcert -noprompt -trustcacerts -alias myrootca \
-file /tmp/myrootca.pem -keystore /etc/ovirt-engine/aaa/myrootca.jks \
-storepass password

Приведенная команда импортирует корневой сертификат ЦС в файл /tmp/myrootca.pem и создаёт сертификат ЦС в кодировке PEM myrootca.jks в каталоге /etc/ovirt-engine/aaa/.

  1. Обновите информацию о сертификате в файле /etc/ovirt-engine/aaa/profile1.properties с использованием startTLS (рекомендуемый способ) или SSL:
  • С использованием startTLS:
Create keystore, import certificate chain and uncomment
pool.default.ssl.startTLS = true
pool.default.ssl.truststore.file = ${local:_basedir}/myrootca.jks
pool.default.ssl.truststore.password = password
  • С использованием SSL:
Create keystore, import certificate chain and uncomment
pool.default.serverset.single.port = 636
pool.default.ssl.enable = true
pool.default.ssl.truststore.file = ${local:_basedir}/myrootca.jks
pool.default.ssl.truststore.password = password

Примечание — ${local:_basedir} является каталогом, в котором расположен файл конфигурации LDAP property, который указывает на каталог /etc/ovirt-engine/aaa. Если сертификат ЦС в кодировке PEM был создан в другом каталоге, замените ${local:_basedir} на полный путь до сертификата.

Настройка шифрования соединений VDSM вручную

Шифрование соединений VDSM с виртуализированным ЦУ и с другими экземплярами VDSM можно настроить вручную.

Ручная настройка требуется только для хостов в кластерах с уровнем кластера 3.6, 4.0 и 4.1. Стойкое шифрование на хостах в кластерах с уровнем 4.2 настраивается автоматически во время переустановок хостов. При наличии кластеров 3.6, 4.0 или 4.1 с хостами виртуализации версии 4.2 используйте стойкое шифрование.

Настройка шифрования соединений VDSM вручную

Для настройки шифрования соединений VDSM вручную:

  1. Нажмите "Ресурсы → Хосты" и выберите хост.
  2. Нажмите "Управление → Обслуживание", чтобы открыть окно подтверждения "Хосты на обслуживании".
  3. Нажмите OK, чтобы запустить режим обслуживания.
  4. Создайте на хосте файл /etc/vdsm/vdsm.conf.d/99-custom-ciphers.conf со следующим параметром:
[vars]
ssl_ciphers = HIGH
  1. Перезапустите службу VDSM:
systemctl restart vdsm
  1. Нажмите "Ресурсы → Хосты" и выберите хост.
  2. Нажмите "Управление → Активировать", чтобы повторно активировать хост.