Управление сертификатами TLS/SSL#

В этом документе описываются следующие операции с сертификатами TLS, используемыми для защиты подключения к различным компонентам платформы Astra Automation:

  • настройка платформы на использование сертификатов, выданных удостоверяющим центром;

  • перевыпуск самоподписанного сертификата средствами платформы;

  • самостоятельная генерация самоподписанного сертификата.

Все приведенные ниже инструкции необходимо выполнять на установочном узле.

Использование сертификатов TLS, выданных удостоверяющим центром#

Чтобы использовать для защиты подключения к компонентам платформы сертификаты, выданные удостоверяющим центром, выполните следующие действия:

  1. Убедитесь, что используемые сертификаты удовлетворяют требованиям, указанным в документе Сертификаты TLS/SSL.

  2. Скопируйте сертификаты и соответствующие им ключи в каталог /opt/rbta/aa/astra-automation-setup/ или один из его подкаталогов.

  3. Перейдите в каталог /opt/rbta/aa/astra-automation-setup/:

    cd /opt/rbta/aa/astra-automation-setup/
    
  4. В файле inventory укажите пути к файлам сертификатов и соответствующих им ключей:

    • web_server_ssl_cert и web_server_ssl_key – сертификат и ключ для веб-сервера Astra Automation Controller.

      Если для каждого узла из плоскости управления Astra Automation Controller выпущен отдельный сертификат, укажите пути к файлам в свойствах узлов, например:

      [automationcontroller]
      ctrl1.example.com  ansible_host=192.0.2.11  web_server_ssl_cert=/path/to/ctrl-cert1.pem    web_server_ssl_key=/path/to/ctrl-key1.key
      ctrl2.example.com  ansible_host=192.0.2.12  web_server_ssl_cert=/path/to/ctrl-cert2.pem    web_server_ssl_key=/path/to/ctrl-key2.key
      ctrl3.example.com  ansible_host=192.0.2.13  web_server_ssl_cert=/path/to/ctrl-cert3.pem    web_server_ssl_key=/path/to/ctrl-key3.key
      

      Если для всех узлов плоскости управления Astra Automation Controller используется один и тот же Wildcard-сертификат, пути к файлам можно указать в переменных группы automationcontroller:

      [automationcontroller]
      ctrl1.example.com  ansible_host=192.0.2.11
      ctrl2.example.com  ansible_host=192.0.2.12
      ctrl3.example.com  ansible_host=192.0.2.13
      
      [automationcontroller:vars]
      web_server_ssl_cert=/path/to/ctrl-cert.pem
      web_server_ssl_key=/path/to/ctrl-key.key
      
    • automationhub_ssl_cert и automationhub_ssl_key – сертификат и ключ для Private Automation Hub.

      Если для каждого узла Private Automation Hub выпущен отдельный сертификат, укажите пути к файлам в свойствах узлов, например:

      [automationhub]
      hub1.example.com   automationhub_ssl_cert=/path/to/hub-cert1.pem  automationhub_ssl_key=/path/to/hub-key1.key
      hub2.example.com   automationhub_ssl_cert=/path/to/hub-cert2.pem  automationhub_ssl_key=/path/to/hub-key2.key
      hub3.example.com   automationhub_ssl_cert=/path/to/hub-cert3.pem  automationhub_ssl_key=/path/to/hub-key3.key
      

      Если для всех узлов Private Automation Hub используется один и тот же Wildcard-сертификат, пути к файлам можно указать в переменных группы automationhub:

      [automationhub]
      hub1.example.com
      hub2.example.com
      hub3.example.com
      
      [automationhub:vars]
      automationhub_ssl_cert=/path/to/hub-cert.pem
      automationhub_ssl_key=/path/to/hub-key.key
      
    • automationedacontroller_ssl_cert и automationedacontroller_ssl_key – сертификат и ключ для Event-Driven Ansible Controller.

      Значения этих параметров необходимо указывать в секции [all:vars]:

      [all:vars]
      automationedacontroller_ssl_cert=/path/to/cert.pem
      automationedacontroller_ssl_key=/path/to/key.key
      
    • postgres_ssl_cert и postgres_ssl_key – сертификат и ключ сервера СУБД PostgreSQL, развернутого средствами платформы Astra Automation.

      Значения этих параметров необходимо указывать в блоке [all:vars], например:

      [all:vars]
      postgres_ssl_cert=/path/to/pg-cert.pem
      postgres_ssl_key=/path/to/pg-key.key
      

      Для сервера PostgreSQL, развернутого иным способом, настройка этих параметров не требуется.

    • mesh_ca_certfile и mesh_ca_keyfile – сертификат и ключ для сети Mesh, используемой Astra Automation Controller.

      Значения этих параметров необходимо указывать в блоке [all:vars], например:

      [all:vars]
      mesh_ca_certfile=/path/to/mesh-cert.pem
      mesh_ca_keyfile=/path/to/mesh-key.key
      

    Совет

    Заполнение инвентаря можно упростить с помощью использования переменных. Пример см. в разделе Использование переменных при заполнении инвентаря.

  5. Если в секции [all:vars] присутствует параметр aap_service_regen_cert, закомментируйте или удалите строку с ним.

  6. Запустите утилиту aa-setup:

    sudo ./aa-setup
    

Автоматизированный перевыпуск самоподписанного сертификата#

Чтобы перевыпустить и переустановить самоподписанный сертификат, используя средства платформы, выполните следующие действия:

  1. Перейдите в каталог /opt/rbta/aa/astra-automation-setup/:

    cd /opt/rbta/aa/astra-automation-setup/
    
  2. В файле inventory добавьте в секцию [all:vars] переменную aap_service_regen_cert со значением true:

    [all:vars]
    aap_service_regen_cert=true
    
  3. Запустите утилиту aa-setup:

    sudo ./aa-setup
    
  4. Удалите или закомментируйте добавленную ранее строку с параметром aap_service_regen_cert.

Использование самоподписанных сертификатов#

Чтобы выпустить самоподписанный сертификат вручную, выполните следующие действия:

  1. Для генерации ключа выполните команду:

    openssl genrsa -out /path/to/key.key 2048
    

    Здесь /path/to/key.key – путь к файлу для сохранения ключа.

  2. Для выпуска сертификата на основе созданного ранее ключа выполните команду:

    openssl req \
        -x509 \
        -sha256 \
        -new \
        -nodes \
        -key /path/to/key.key \
        -days 3650 \
        -out /path/to/cert.pem \
        -subj "/C=RU/ST=Moscow/L=Moscow/O=Company/OU=IT/CN=CertificateAuthority"
    

    где:

    • -x509 – команда выпуска сертификата;

    • -sha256 – алгоритм хэширования;

    • -new – создание нового сертификата;

    • -key – полный путь к файлу созданного ранее ключа;

    • -days – срок действия сертификата, в днях;

    • -out – путь к файлу для сохранения сертификата;

    • -subj – параметры сертификата:

      • C – двухсимвольный код страны в соответствии с ISO-3166-1;

      • ST – название региона, в котором зарегистрирована организация;

      • L – город, в котором зарегистрирована организация;

      • O – наименование организации в соответствии с уставом организации;

      • OU – наименование подразделения;

      • CN – FQDN веб-сервера.

    Подробности об использовании команды openssl см. в документации OpenSSL.

  3. Установите сертификат согласно инструкций, приведенных в секции Использование сертификатов TLS, выданных удостоверяющим центром.