Система виртуализации и шифрование связи
Замена сертификата ЦС виртуализированного ЦУ
Идентификацию пользователей виртуализированного ЦУ, подключающихся с использованием протокола 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 нужно:
- создать резервную копию текущего файла apache.p12:
cp -p /etc/pki/ovirt-engine/keys/apache.p12 \
/etc/pki/ovirt-engine/keys/apache.p12.bck
- заменить текущий файл на файл, полученный из стороннего ЦС:
cp /tmp/apache.p12 /etc/pki/ovirt-engine/keys/apache.p12
- извлечь закрытый ключ и сертификат ключа в необходимое местоположение (если файл защищен паролем, добавить параметр
"-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 нужно:
- перевести окружение в режим глобального обслуживания:
hosted-engine --set-maintenance --mode=global
- добавить сертификат стороннего ЦС в хранилище доверенных сертификатов хоста:
cp /tmp/3rd-party-ca-cert.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 /tmp/3rd-party-ca-cert.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 /tmp/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 /tmp/apache.cer /etc/pki/ovirt-engine/certs/apache.cer
- перезапустить веб-сервер Apache:
systemctl restart httpd.service
- создать новый файл конфигурации /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=""
- скопировать файл /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
- перезапустить службу ovirt-websocket-proxy:
systemctl restart ovirt-websocket-proxy.service
- если файл /etc/ovirt-provider-ovn/conf.d/10-setup-ovirt-provider-ovn.conf был отредактирован вручную, убедиться, что в виртуализированном ЦУ в качестве источника сертификата по-прежнему используется /etc/pki/ovirt-engine/apache-ca.pem;
- для включения в 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
- перезапустить службу ovirt-provider-ovn:
systemctl restart ovirt-provider-ovn.service
- перезапустить службу ovirt-engine:
systemctl restart ovirt-engine.service
- отключить глобальный режим обслуживания:
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 нужно выполнить следующие действия:
- на машине виртуализированного ЦУ скопировать корневой сертификат ЦС сервера 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/.
- обновить информацию о сертификате в файле /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 вручную нужно:
- нажать "Ресурсы → Хосты" и выбрать хост;
- нажать "Управление → Обслуживание", чтобы открыть окно подтверждения "Хосты на обслуживании";
- нажать кнопку
OK, чтобы запустить режим обслуживания; - создать на хосте файл /etc/vdsm/vdsm.conf.d/99-custom-ciphers.conf со следующим параметром:
[vars]
ssl_ciphers = HIGH
- перезапустить службу VDSM:
systemctl restart vdsm
- нажать "Ресурсы → Хосты" и выбрать хост;
- нажать "Управление → Активировать", чтобы повторно активировать хост.