Сертификаты TLS#
На этом шаге компоненты платформы на использование сертификатов TLS.
Сертификаты 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для упрощения развертывания;добавьте исключения в браузеры для тестирования.
Процесс подготовки#
На этом этапе выполните следующие подготовительные действия, если не используется режим автоматической регенерации:
Подготовьте сертификаты и ключи согласно выбранному типу.
Скопируйте файлы на установочный узел.
Настройте переменные в файле инвентаря.