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

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

Идентификацию пользователей виртуализированного ЦУ, подключающихся с использованием протокола 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, необходимо извлечь их с помощью инструкции (п. Извлечение сертификата и закрытого ключа из файла с расширением *.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. В приведенной в п. Создание сертификата ЦС в кодировке PEM процедуре используется файл ключа с расширением *.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. нажать "Управление → Активировать", чтобы повторно активировать хост.