Сертификаты TLS#

На этом шаге компоненты платформы на использование сертификатов TLS.

../../../../_images/general-green.svg ../../../../_images/gateway-green.svg ../../../../_images/autoexec-green.svg ../../../../_images/content-green.svg ../../../../_images/eda-green.svg ../../../../_images/tls-blue.svg ../../../../_images/postgres-white.svg ../../../../_images/general-green.svg ../../../../_images/gateway-green.svg ../../../../_images/autoexec-green.svg ../../../../_images/content-green.svg ../../../../_images/eda-green.svg ../../../../_images/tls-blue.svg ../../../../_images/postgres-dark.svg

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

Классификация#

Платформа поддерживает различные варианты сертификатов, каждый из которых имеет особенности настройки:

  • Сертификаты, подписанные публичным удостоверяющим центром CA (Certificate Authority):

    • выданы доверенными публичными центрами сертификации (Let’s Encrypt, DigiCert, GlobalSign и др.);

    • им доверяют все браузеры и клиенты HTTP;

    • подходят для публично доступных сервисов, то есть особенно важны для шлюза платформы.

  • Сертификаты, подписанные собственным (корпоративным) удостоверяющим центром (Custom/Corporate CA) в организации, которая использует собственную структуры PKI (Public Key Infrastructure):

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

    • требуют установки корневого CA-сертификата на клиентские системы;

    • подходят для внутренних корпоративных систем.

  • Самоподписанные сертификаты (Self-signed):

    • сертификаты, подписанные собственным закрытым ключом;

    • им не доверяют браузеры по умолчанию (предупреждения безопасности);

    • подходят для тестирования и разработки.

Применение сертификатов от публичного удостоверяющего центра#

Пример описания инвентаря для сертификатов от публичного удостоверяющего центра, например Let’s Encrypt:

[all:vars]
# SSL certificate settings for public CA
# No custom_ca_cert required for public CA certificates

# Platform Gateway SSL certificate
automationgateway_ssl_cert=/etc/letsencrypt/live/gateway.example.com/fullchain.pem
automationgateway_ssl_key=/etc/letsencrypt/live/gateway.example.com/privkey.pem

# Automation Controller SSL certificate
web_server_ssl_cert=/etc/letsencrypt/live/controller.example.com/fullchain.pem
web_server_ssl_key=/etc/letsencrypt/live/controller.example.com/privkey.pem

# Automation Hub SSL certificate
automationhub_ssl_cert=/etc/letsencrypt/live/hub.example.com/fullchain.pem
automationhub_ssl_key=/etc/letsencrypt/live/hub.example.com/privkey.pem

# Event-Driven Automation SSL certificate
automationedacontroller_ssl_cert=/etc/letsencrypt/live/eda.example.com/fullchain.pem
automationedacontroller_ssl_key=/etc/letsencrypt/live/eda.example.com/privkey.pem

Особенности применения публичных сертификатов:

  • используйте файл, например, fullchain.pem, который содержит как серверный сертификат, так и промежуточные сертификаты;

  • переменная custom_ca_cert не требуется, так как корневые CA уже доверяются системой;

  • сертификаты имеют ограниченный срок действия (например, 90 дней);

  • требуется автоматизированное обновление сертификатов.

Применение сертификатов собственного удостоверяющего центра#

Пример описания инвентаря для корпоративного CA:

[all:vars]
# SSL certificate settings for custom/corporate CA

# Custom CA certificate (root or intermediate)
custom_ca_cert=/path/to/corporate-ca-chain.crt

# Platform Gateway SSL certificate
automationgateway_ssl_cert=/path/to/gateway.corp.example.com.crt
automationgateway_ssl_key=/path/to/gateway.corp.example.com.key

# Automation Controller SSL certificate
web_server_ssl_cert=/path/to/controller.corp.example.com.crt
web_server_ssl_key=/path/to/controller.corp.example.com.key

# Automation Hub SSL certificate
automationhub_ssl_cert=/path/to/hub.corp.example.com.crt
automationhub_ssl_key=/path/to/hub.corp.example.com.key

# Event-Driven Automation SSL certificate
automationedacontroller_ssl_cert=/path/to/eda.corp.example.com.crt
automationedacontroller_ssl_key=/path/to/eda.corp.example.com.key

Особенности корпоративных CA-сертификатов:

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

  • файл с сертификатами должен содержать всю цепочку от сервера до корневого сертификата CA;

  • серверные сертификаты должны быть в формате PEM.

Формат файла цепочки CA:

-----BEGIN CERTIFICATE-----
[Intermediate CA Certificate]
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
[Root CA Certificate]
-----END CERTIFICATE-----

Применение самоподписанных сертификатов#

Пример описания инвентаря для самоподписанных сертификатов с использованием собственного корневого сертификата:

[all:vars]
# SSL certificate settings for self-signed certificates

# Custom CA certificate (self-signed root)
custom_ca_cert=/path/to/self-signed-ca.crt

# Platform Gateway SSL certificate
automationgateway_ssl_cert=/path/to/gateway.local.example.com.crt
automationgateway_ssl_key=/path/to/gateway.local.example.com.key

# Automation Controller SSL certificate
web_server_ssl_cert=/path/to/controller.local.example.com.crt
web_server_ssl_key=/path/to/controller.local.example.com.key

# Automation Hub SSL certificate
automationhub_ssl_cert=/path/to/hub.local.example.com.crt
automationhub_ssl_key=/path/to/hub.local.example.com.key

# Event-Driven Automation SSL certificate
automationedacontroller_ssl_cert=/path/to/eda.local.example.com.crt
automationedacontroller_ssl_key=/path/to/eda.local.example.com.key

# Alternative: Regenerate all self-signed certificates automatically
# aap_service_regen_cert=true

Особенности самоподписанных сертификатов с использованием собственного корневого сертификата:

  • Требуют ручного добавления в доверенные сертификаты на клиентских системах.

  • Браузеры будут показывать предупреждения безопасности.

  • Не подходят для производственных систем.

Если в дальнейшем потребуется регенерация самоподписанных сертификатов, то используйте переменную aap_service_regen_cert при повторном запуске aa-setup:

[all:vars]
# Automatically regenerate self-signed certificates for all services
aap_service_regen_cert=true

Этот вариант требует всего лишь одну строку настройки. Созданные таким образом сертификаты имеют следующие особенности и ограничения в применении:

  • простота развертывания: автоматически создаются утилитой установки при указании aap_service_regen_cert=true без требования ручной генерации, предварительной подготовки файлов или знания команд OpenSSL;

  • комплексное покрытие: генерируются для всех компонентов платформы одновременно (Gateway, Controller, Hub, EDA) с единым корневым CA-сертификатом и автоматическим размещением в соответствующих каталогах;

  • гибкость управления: могут быть перегенерированы в любое время повторным запуском утилиты установки с тем же параметром, что обеспечивает простое обновление при необходимости;

  • оптимизация для тестирования: используют стандартные параметры шифрования с достаточно длительным сроком действия, автоматически включают необходимые Subject Alternative Names (SAN) и подходят для изолированных тестовых сред;

  • надежность конфигурации: обеспечивают консистентность параметров шифрования между всеми компонентами и позволяют избежать ошибок, связанных с неправильными путями к файлам или форматами сертификатов.

Рекомендации по выбору типа сертификатов#

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

Производственные системы (публичный доступ):

  • используйте сертификаты публичных CA;

  • настройте автоматическое обновление сертификатов;

  • используйте проверку доступа для автоматизации обновления сертификатов.

Корпоративные системы (внутренняя сеть):

  • используйте корпоративный CA при наличии инфраструктуры PKI;

  • убедитесь, что корневые сертификаты установлены на всех клиентских системах;

  • настройте политики истечения сертификатов.

Тестирование и разработка:

  • самоподписанные сертификаты подходят для изолированных тестовых сред;

  • используйте aap_service_regen_cert=true для упрощения развертывания;

  • добавьте исключения в браузеры для тестирования.

Процесс подготовки#

На этом этапе выполните следующие подготовительные действия, если не используется режим автоматической регенерации:

  1. Подготовьте сертификаты и ключи согласно выбранному типу.

  2. Скопируйте файлы на установочный узел.

  3. Настройте переменные в файле инвентаря.