Получение 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
💡 Комментарии к получению корпоративных сертификатов
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#
# На Debian/Ubuntu
sudo apt update
sudo apt install certbot
# На CentOS/RHEL
sudo yum install certbot
# На macOS (с Homebrew)
brew install certbot
💡 Комментарии к установке Certbot
Ubuntu/Debian:
sudo apt update- обновляет список пакетовsudo apt install certbot- устанавливает Certbot
CentOS/RHEL:
sudo yum install certbot- устанавливает Certbot через yum
macOS:
brew install certbot- устанавливает Certbot через Homebrew
Получение сертификата для домена#
# Получите сертификат для вашего домена (замените yourdomain.com на ваш домен)
sudo certbot certonly --standalone -d yourdomain.com
# Или для wildcard сертификата (требуется DNS challenge)
sudo certbot certonly --manual --preferred-challenges=dns -d yourdomain.com -d *.yourdomain.com
💡 Комментарии к получению сертификата
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/:
# Проверьте содержимое директории с сертификатами
sudo ls -la /etc/letsencrypt/live/yourdomain.com/
# Вывод должен содержать:
# cert.pem (сертификат)
# chain.pem (цепочка сертификатов)
# fullchain.pem (полная цепочка)
# privkey.pem (приватный ключ)
💡 Комментарии к расположению сертификатов
sudo ls -la /etc/letsencrypt/live/yourdomain.com/ - показывает содержимое директории с сертификатами
/etc/letsencrypt/live/- стандартная директория Let's Encryptyourdomain.com/- поддиректория для домена
Файлы сертификатов:
cert.pem- сертификат доменаchain.pem- цепочка промежуточных сертификатовfullchain.pem- полный сертификат с цепочкойprivkey.pem- приватный ключ
Перенос сертификатов на сервер Sherpa#
Скопируйте сертификаты на сервер, где установлен Sherpa Orchestrator:
# Создайте директорию для сертификатов на сервере Sherpa
sudo mkdir -p /opt/SherpaOrchestrator/backend/config/certs/
# Скопируйте сертификаты (замените yourdomain.com на ваш домен)
sudo scp /etc/letsencrypt/live/yourdomain.com/fullchain.pem user@target-server:/opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo scp /etc/letsencrypt/live/yourdomain.com/privkey.pem user@target-server:/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
💡 Комментарии к переносу сертификатов
sudo scp /etc/letsencrypt/live/yourdomain.com/fullchain.pem user@target-server:/opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt - копирует сертификат
scp- secure copyfullchain.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#
# Создайте директорию для сертификатов
sudo mkdir -p /opt/SherpaOrchestrator/backend/config/certs/
# Сгенерируйте приватный ключ
sudo openssl genrsa -out /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key 2048
# Создайте самоподписной сертификат
sudo openssl req -new -x509 -key /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key -out /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -days 365 -subj "/C=RU/ST=State/L=City/O=Organization/CN=orchestrator.yourdomain.com"
# Установите правильные права доступа
sudo chmod 644 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo chmod 600 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key
💡 Комментарии к созданию самоподписных сертификатов
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 - устанавливают правильные права доступа
Проверка созданных сертификатов#
# Проверьте информацию о сертификате
sudo openssl x509 -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -text -noout
# Проверьте соответствие ключа и сертификата
sudo openssl rsa -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key -check
# Проверьте срок действия сертификата
sudo openssl x509 -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -enddate -noout
💡 Комментарии к проверке сертификатов
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:
# Проверьте синтаксис конфигурации
sudo nginx -t
# Перезапустите Nginx
sudo systemctl restart nginx
# Проверьте статус
sudo systemctl status nginx
Проверка HTTPS соединения#
# Проверьте HTTPS доступность
curl -I https://your-domain-or-ip
# Проверьте сертификат
openssl s_client -connect your-domain-or-ip:443 -servername your-domain-or-ip < /dev/null 2>/dev/null | openssl x509 -noout -dates
Автоматическое обновление сертификатов Let's Encrypt#
Для автоматического обновления сертификатов Let's Encrypt настройте cron:
# Откройте crontab
sudo crontab -e
# Добавьте задачу обновления (выполняется 2 раза в день в случайное время)
0 */12 * * * /usr/bin/certbot renew --quiet && systemctl reload nginx
💡 Комментарии к автоматическому обновлению
certbot renew --quiet - обновляет все сертификаты, срок действия которых истекает менее чем через 30 дней
--quiet- suppresses output except for errors
systemctl reload nginx - перезагружает конфигурацию Nginx после обновления сертификатов
Задача выполняется 2 раза в сутки для обеспечения своевременного обновления.
Рекомендации по безопасности#
- Всегда используйте доверенные сертификаты для production-сред
- Регулярно обновляйте сертификаты до истечения срока действия
- Храните приватные ключи в безопасном месте с ограниченными правами доступа
- Мониторьте срок действия сертификатов и настраивайте оповещения
- Используйте strong cipher suites в конфигурации сервера
- Настраивайте 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.