Получение SSL-сертификатов (локальная установка)

Sherpa Orchestrator поддерживает HTTPS-соединения для обеспечения безопасной коммуникации. В этом руководстве описаны способы получения SSL-сертификатов для использования в системе.

Рекомендации по получению сертификатов

Важно: Прежде чем получать сертификаты, обратитесь к администратору вашей внутренней сети или в центр сертификации вашей компании. Корпоративные сертификаты обычно предоставляются ИТ-отделом и обеспечивают лучшую интеграцию с существующей инфраструктурой безопасности.

Если корпоративные сертификаты недоступны, рассмотрите следующие варианты получения сертификатов для внешних доменов в следующих разделах.

Получение корпоративных сертификатов

Если в вашей организации есть внутренний центр сертификации (CA), обратитесь к системному администратору для получения сертификатов. Сообщите ему домен для сертификатов и получите 2 файла: сертификат (.crt) и приватный ключ (.key). После получения установите их следующим образом:

# Создайте директорию для сертификатов
sudo mkdir -p /opt/SherpaOrchestrator/backend/config/certs/

# Скопируйте сертификаты (переименуйте файлы согласно полученным)
sudo cp your_certificate.crt /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo cp your_private.key /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key

# Установите правильные права доступа
sudo chmod 644 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo chmod 600 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key
chevron-right💡 Комментарии к получению корпоративных сертификатовhashtag

sudo mkdir -p /opt/SherpaOrchestrator/backend/config/certs/ - создает директорию для сертификатов

  • -p - создает родительские директории при необходимости

sudo cp your_certificate.crt /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt - копирует сертификат sudo cp your_private.key /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key - копирует приватный ключ

chmod 644 - устанавливает права чтения для сертификатов (владелец может писать, все могут читать) chmod 600 - устанавливает права только для владельца на приватные ключи

Получение доверенных сертификатов через Let's Encrypt

Для получения бесплатных доверенных сертификатов от Let's Encrypt используйте Certbot на машине с доступом к интернету.

Установка Certbot

chevron-right💡 Комментарии к установке Certbothashtag

Ubuntu/Debian:

  • sudo apt update - обновляет список пакетов

  • sudo apt install certbot - устанавливает Certbot

CentOS/RHEL:

  • sudo yum install certbot - устанавливает Certbot через yum

macOS:

  • brew install certbot - устанавливает Certbot через Homebrew

Получение сертификата для домена

chevron-right💡 Комментарии к получению сертификатаhashtag

sudo certbot certonly --standalone -d yourdomain.com - получает сертификат для домена

  • certonly - получает только сертификаты, без настройки веб-сервера

  • --standalone - запускает временный веб-сервер для HTTP-01 challenge

  • -d yourdomain.com - указывает домен для сертификата

*sudo certbot certonly --manual --preferred-challenges=dns -d yourdomain.com -d .yourdomain.com - получает wildcard сертификат

  • --manual - ручной режим (требует DNS-записи)

  • --preferred-challenges=dns - использует DNS-01 challenge

  • -d *.yourdomain.com - wildcard домен

Расположение полученных сертификатов

После успешного получения сертификатов они будут находиться в директории /etc/letsencrypt/live/yourdomain.com/:

chevron-right💡 Комментарии к расположению сертификатовhashtag

sudo ls -la /etc/letsencrypt/live/yourdomain.com/ - показывает содержимое директории с сертификатами

  • /etc/letsencrypt/live/ - стандартная директория Let's Encrypt

  • yourdomain.com/ - поддиректория для домена

Файлы сертификатов:

  • cert.pem - сертификат домена

  • chain.pem - цепочка промежуточных сертификатов

  • fullchain.pem - полный сертификат с цепочкой

  • privkey.pem - приватный ключ

Перенос сертификатов на сервер Sherpa

Скопируйте сертификаты на сервер, где установлен Sherpa Orchestrator:

chevron-right💡 Комментарии к переносу сертификатовhashtag

sudo scp /etc/letsencrypt/live/yourdomain.com/fullchain.pem user@target-server:/opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt - копирует сертификат

  • scp - secure copy

  • fullchain.pem - полный сертификат с цепочкой

  • Переименовывается в orchestrator.crt

sudo scp /etc/letsencrypt/live/yourdomain.com/privkey.pem user@target-server:/opt/SherpaOrchestrator/backend/config/certs/orchestrator.key - копирует приватный ключ

  • privkey.pem - приватный ключ

  • Переименовывается в orchestrator.key

Создание самоподписных сертификатов (для тестирования)

ВНИМАНИЕ: Самоподписные сертификаты не являются доверенными и будут вызывать предупреждения безопасности в браузерах. Используйте этот метод только для тестирования или в изолированных сетях!

Создание самоподписного сертификата с помощью OpenSSL

chevron-right💡 Комментарии к созданию самоподписных сертификатовhashtag

sudo mkdir -p /opt/SherpaOrchestrator/backend/config/certs/ - создает директорию для сертификатов

sudo openssl genrsa -out /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key 2048 - генерирует приватный ключ

  • genrsa - генерация RSA ключа

  • -out file.key - выходной файл

  • 2048 - длина ключа в битах

sudo openssl req -new -x509 -key keyfile.key -out certfile.crt -days 365 -subj "/C=RU/..." - создает самоподписной сертификат

  • req -new -x509 - создает новый самоподписной сертификат

  • -key keyfile.key - использует указанный приватный ключ

  • -out certfile.crt - выходной файл сертификата

  • -days 365 - срок действия (1 год)

  • -subj "/C=RU/ST=State/L=City/O=Organization/CN=domain.com" - информация о субъекте

chmod 644 и chmod 600 - устанавливают правильные права доступа

Проверка созданных сертификатов

chevron-right💡 Комментарии к проверке сертификатовhashtag

sudo openssl x509 -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -text -noout - показывает информацию о сертификате

  • x509 - команда для работы с X.509 сертификатами

  • -in file.crt - входной файл сертификата

  • -text - выводит текстовую информацию

  • -noout - не выводит закодированный сертификат

sudo openssl rsa -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key -check - проверяет приватный ключ

  • rsa - команда для работы с RSA ключами

  • -in file.key - входной файл ключа

  • -check - проверяет корректность ключа

sudo openssl x509 -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -enddate -noout - показывает дату окончания действия сертификата

Настройка TLS для протокола LDAPS (опциональный пункт)

Важно: Если поддержка LDAPS не требуется, пропустите данный пункт.

Скопируйте сертификат rootCA с именем ca-certificates.crt в каталог /opt/SherpaOrchestrator/backend/config/certs/

Настройка сертификатов для IMAP-сервера (опциональный пункт)

Важно: Если вы не планируете использование Триггеров с запуском по электронной почте или ваш почтовый сервер не требует сертификатов, пропустите данный пункт.

Скопируйте сертификаты для imap в папку /opt/SherpaOrchestrator/backend/config/certs/imap_certs

Активация сертификатов

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

Проверка HTTPS соединения

Автоматическое обновление сертификатов Let's Encrypt

Для автоматического обновления сертификатов Let's Encrypt настройте cron:

chevron-right💡 Комментарии к автоматическому обновлениюhashtag

certbot renew --quiet - обновляет все сертификаты, срок действия которых истекает менее чем через 30 дней

  • --quiet - suppresses output except for errors

systemctl reload nginx - перезагружает конфигурацию Nginx после обновления сертификатов

Задача выполняется 2 раза в сутки для обеспечения своевременного обновления.

Рекомендации по безопасности

  1. Всегда используйте доверенные сертификаты для production-сред

  2. Регулярно обновляйте сертификаты до истечения срока действия

  3. Храните приватные ключи в безопасном месте с ограниченными правами доступа

  4. Мониторьте срок действия сертификатов и настраивайте оповещения

  5. Используйте strong cipher suites в конфигурации сервера

  6. Настраивайте HSTS (HTTP Strict Transport Security) для принудительного HTTPS

Устранение неполадок

Проблема: "ssl certificate verification failed"

Решение:

  • Проверьте корректность установки сертификатов

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

  • Проверьте путь к сертификатам в конфигурации Nginx

Проблема: "chain incomplete" или "unable to get local issuer certificate"

Решение:

  • Используйте fullchain.pem вместо cert.pem для сертификата

  • Убедитесь, что файл цепочки сертификатов присутствует и корректен

Проблема: "ssl handshake failure"

Решение:

  • Проверьте совместимость cipher suites

  • Убедитесь, что приватный ключ соответствует сертификату

  • Проверьте логи Nginx на наличие ошибок

После получения и настройки сертификатов любым из описанных способов система Sherpa Orchestrator будет доступна по HTTPS.

Last updated