Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Добавление TLS-сертификата

Этапы добавления TLS-сертификата:

  1. Добавление удостоверяющего центра в доверенные на целевом хосте или узлах кластера

  2. Перезагрузка целевого хоста или узлов кластера

  3. Заполнение config.yml

    Файл config.yml необходимо заполнить при подготовке управляющего хоста. После этого выполните развертывание Cloudlink.

1. Требования к сертификату

Обязательные поля в сертификате:

  • CN (Common Name) — поле, содержащее доменное имя хоста, для которого выдается сертификат.

  • SAN (Subject Alternative Name) -- поле, содержащее все доменные имена, по которым пользователи и компоненты будут обращаться к сервисам Cloudlink.

Если различаются внутреннее и внешнее доменные имена (domain_int и domain_ext в файле hosts), дополнительно укажите в сертификате внешнее доменное имя, например *.cloudlink.ru. В сертификате должны находиться все используемые домены.
Пример 1. Заполнение доменных имен в сертификате
DNS:*.cloudlink.sample.box (1)
DNS:*.nexus.cloudlink.sample.box (2)
DNS:*.cloudlink.ru (3)

Где:

1  — поле CN
2  — поле SAN
3  — поле SAN с внешним доменным именем

2. Формат сертификата

Требования к формату сертификата:

  1. Все значения сертификатов и ключей должны быть в формате PEM, текстовом формате со строками BEGIN и END:

    Не удаляйте строки BEGIN и END, они необходимы для корректного PEM.
    -----BEGIN-----
    ... (1)
    -----END-----
    1  — содержимое сертификата или ключа.
  2. Приватный ключ должен быть без пароля.

    При наличии пароля автоматический запуск сервисов может завершиться ошибкой.

3. Добавление удостоверяющего центра в доверенные на целевых хостах

Перед заменой сертификата Cloudlink убедитесь, что операционная система на целевом хосте или, при установке в режиме High Availability, на всех узлах кластера доверяет удостоверяющему центру (далее — CA), подписавшему TLS-сертификат.

CA следует добавить в доверенные до запуска развертывания Cloudlink. Иначе сервисы, обращающиеся по HTTPS к внутренним и внешним ресурсам, могут возвращать ошибку x509: unknown authority.

Чтобы добавить CA в доверенные:

  1. Добавьте цепочку сертификатов CA (CA chain) в доверенные сертификаты операционной системы:

    • на каждом узле кластера для режима установки High Availability

    • на целевом хосте для режима установки Single Instance

  2. Перезагрузите целевой хост или узлы кластера.

    Перезагрузка рекомендуется, чтобы гарантировать применение новых доверенных CA, а также сбросить долгоживущие соединения и кеш-состояния сервисов и среды запуска контейнеров. На разных операционных системах и версиях компонентов применение новых настроек может отличаться, однако перезагрузка делает результат предсказуемым.

4. Заполнение config.yml

Ниже описаны только те поля в файле config.yml, которые необходимы для добавления TLS-сертификата. Полное описание прочих полей представлено в инструкции Подготовка управляющего хоста.

Для добавления TLS-сертификата в config.yml заполните поля:

  1. 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-----
  2. tls_cert — серверный сертификат. Он записывается в формате:

    tls_cert: |
    -----BEGIN CERTIFICATE-----
    ... server certificate ...
    -----END CERTIFICATE-----
  3. tls_key -- приватный ключ сервера. Он записывается в формате:

    tls_key: |
    -----BEGIN PRIVATE KEY-----
    ... private key ...
    -----END PRIVATE KEY-----

После добавления TLS-сертификата и подготовки управляющего хоста, выполните стандартный запуск развертывания Cloudlink.