Добавление TLS-сертификата
Этапы добавления TLS-сертификата:
-
Добавление удостоверяющего центра в доверенные на целевом хосте или узлах кластера
-
Перезагрузка целевого хоста или узлов кластера
-
Файл config.yml необходимо заполнить при подготовке управляющего хоста. После этого выполните развертывание Cloudlink.
1. Требования к сертификату
Обязательные поля в сертификате:
-
CN (Common Name) — поле, содержащее доменное имя хоста, для которого выдается сертификат.
-
SAN (Subject Alternative Name) -- поле, содержащее все доменные имена, по которым пользователи и компоненты будут обращаться к сервисам Cloudlink.
Если различаются внутреннее и внешнее доменные имена (domain_int и domain_ext в файле hosts), дополнительно укажите в сертификате внешнее доменное имя, например *.cloudlink.ru. В сертификате должны находиться все используемые домены.
|
DNS:*.cloudlink.sample.box (1)
DNS:*.nexus.cloudlink.sample.box (2)
DNS:*.cloudlink.ru (3)
Где:
| 1 | — поле CN |
| 2 | — поле SAN |
| 3 | — поле SAN с внешним доменным именем |
2. Формат сертификата
Требования к формату сертификата:
-
Все значения сертификатов и ключей должны быть в формате PEM, текстовом формате со строками
BEGINиEND:Не удаляйте строки BEGINиEND, они необходимы для корректного PEM.-----BEGIN----- ... (1) -----END-----1 — содержимое сертификата или ключа. -
Приватный ключ должен быть без пароля.
При наличии пароля автоматический запуск сервисов может завершиться ошибкой.
3. Добавление удостоверяющего центра в доверенные на целевых хостах
Перед заменой сертификата Cloudlink убедитесь, что операционная система на целевом хосте или, при установке в режиме High Availability, на всех узлах кластера доверяет удостоверяющему центру (далее — CA), подписавшему TLS-сертификат.
| CA следует добавить в доверенные до запуска развертывания Cloudlink. Иначе сервисы, обращающиеся по HTTPS к внутренним и внешним ресурсам, могут возвращать ошибку x509: unknown authority. |
Чтобы добавить CA в доверенные:
-
Добавьте цепочку сертификатов CA (CA chain) в доверенные сертификаты операционной системы:
-
на каждом узле кластера для режима установки High Availability
-
на целевом хосте для режима установки Single Instance
-
-
Перезагрузите целевой хост или узлы кластера.
Перезагрузка рекомендуется, чтобы гарантировать применение новых доверенных CA, а также сбросить долгоживущие соединения и кеш-состояния сервисов и среды запуска контейнеров. На разных операционных системах и версиях компонентов применение новых настроек может отличаться, однако перезагрузка делает результат предсказуемым.
4. Заполнение config.yml
Ниже описаны только те поля в файле config.yml, которые необходимы для добавления TLS-сертификата. Полное описание прочих полей представлено в инструкции Подготовка управляющего хоста.
Для добавления TLS-сертификата в config.yml заполните поля:
-
tls_ca_cert -- цепочка сертификатов (CA chain).
Важен порядок заполнения поля. -
Если существует только корневой сертификат (Root CA), то указывается только он.
-
Если есть корневой (Root CA) и промежуточный (Intermediate CA) сертификаты, то они указываются в одной переменной подряд, в следующей последовательности: сначала
Intermediate CA, затемRoot CA. Например:tls_ca_cert: | -----BEGIN CERTIFICATE----- ... intermediate CA cert ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ... root CA cert ... -----END CERTIFICATE-----Как правило, встречается один
Intermediate CA. Если промежуточных сертификатов несколько, они перечисляются по цепочке. Например:tls_ca_cert: | -----BEGIN CERTIFICATE----- ... Intermediate-2 ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ... Intermediate-1 ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ... Root CA cert ... -----END CERTIFICATE-----
-
-
tls_cert — серверный сертификат. Он записывается в формате:
tls_cert: | -----BEGIN CERTIFICATE----- ... server certificate ... -----END CERTIFICATE----- -
tls_key -- приватный ключ сервера. Он записывается в формате:
tls_key: | -----BEGIN PRIVATE KEY----- ... private key ... -----END PRIVATE KEY-----
5. Запуск развертывания Cloudlink
После добавления TLS-сертификата и подготовки управляющего хоста, выполните стандартный запуск развертывания Cloudlink.