Установка и настройка SSL сертификатов#
Получение SSL-сертификатов#
Sherpa AIServer поддерживает HTTPS-соединения для обеспечения безопасной коммуникации. В этом руководстве описаны способы получения SSL-сертификатов для использования в системе.
Рекомендации по получению сертификатов#
Важно: Прежде чем получать сертификаты, обратитесь к администратору вашей внутренней сети или в центр сертификации вашей компании. Корпоративные сертификаты обычно предоставляются ИТ-отделом и обеспечивают лучшую интеграцию с существующей инфраструктурой безопасности.
Если корпоративные сертификаты недоступны, рассмотрите следующие варианты получения сертификатов для внешних доменов в следующих разделах.
Получение корпоративных сертификатов#
Если в вашей организации есть внутренний центр сертификации (CA), обратитесь к системному администратору для получения сертификатов. Сообщите ему домен для сертификатов и получите 2 файла: сертификат (.crt) и приватный ключ (.key). После получения установите их следующим образом:
# Создайте директории для сертификатов
mkdir -p ./oais/backend/config/certs/
mkdir -p ./embed-server/certs/
# Для основного сервера (переименуйте файлы согласно полученным)
cp your_certificate.crt ./oais/backend/config/certs/aiserver.crt
cp your_private.key ./oais/backend/config/certs/aiserver.key
💡 Комментарии к получению корпоративных сертификатов
mkdir -p ./oais/backend/config/certs/ - создает директорию для сертификатов основного сервера
-p- создает родительские директории при необходимости
mkdir -p ./embed-server/certs/ - создает директорию для сертификатов сервиса эмбеддингов
cp your_certificate.crt ./oais/backend/config/certs/aiserver.crt - копирует сертификат cp your_private.key ./oais/backend/config/certs/aiserver.key - копирует приватный ключ
chmod 644 ./oais/backend/config/certs/*.crt - устанавливает права чтения для сертификатов chmod 600 ./oais/backend/config/certs/*.key - устанавливает права только для владельца на ключи
Получение доверенных сертификатов через Let's Encrypt#
Для получения бесплатных доверенных сертификатов от Let's Encrypt используйте Certbot на машине с доступом к интернету.
Установка Certbot#
# На Ubuntu/Debian
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 AI Server:
# Создайте директорию для сертификатов на целевой машине
mkdir -p ./oais/backend/config/certs/
# Скопируйте сертификаты (замените yourdomain.com на ваш домен)
sudo scp /etc/letsencrypt/live/yourdomain.com/fullchain.pem user@target-server:./oais/backend/config/certs/aiserver.crt
sudo scp /etc/letsencrypt/live/yourdomain.com/privkey.pem user@target-server:./oais/backend/config/certs/aiserver.key
# Для сервиса эмбеддингов
mkdir -p ./embed-server/certs/
sudo scp /etc/letsencrypt/live/yourdomain.com/fullchain.pem user@target-server:./embed-server/certs/embed.crt
sudo scp /etc/letsencrypt/live/yourdomain.com/privkey.pem user@target-server:./embed-server/certs/embed.key
💡 Комментарии к переносу сертификатов
mkdir -p ./oais/backend/config/certs/ - создает директорию для сертификатов основного сервера
sudo scp /etc/letsencrypt/live/yourdomain.com/fullchain.pem user@target-server:./oais/backend/config/certs/aiserver.crt - копирует сертификат
scp- secure copyfullchain.pem- полный сертификат с цепочкой- Переименовывается в
aiserver.crt
sudo scp /etc/letsencrypt/live/yourdomain.com/privkey.pem user@target-server:./oais/backend/config/certs/aiserver.key - копирует приватный ключ
privkey.pem- приватный ключ- Переименовывается в
aiserver.key
Аналогично для сервиса эмбеддингов:
- Директория:
./embed-server/certs/ - Имена файлов:
embed.crtиembed.key
Создание самоподписных сертификатов (для тестирования)#
ВНИМАНИЕ: Самоподписные сертификаты не являются доверенными и будут вызывать предупреждения безопасности в браузерах. Используйте этот метод только для тестирования или в изолированных сетях!
Создание самоподписного сертификата с помощью OpenSSL#
# Создайте директорию для сертификатов
mkdir -p ./oais/backend/config/certs/
# Сгенерируйте приватный ключ
openssl genrsa -out ./oais/backend/config/certs/aiserver.key 2048
# Создайте самоподписной сертификат
openssl req -new -x509 -key ./oais/backend/config/certs/aiserver.key -out ./oais/backend/config/certs/aiserver.crt -days 365 -subj "/C=RU/ST=State/L=City/O=Organization/CN=aiserver.sherparpa.ru"
# Для сервиса эмбеддингов
mkdir -p ./embed-server/certs/
openssl genrsa -out ./embed-server/certs/embed.key 2048
openssl req -new -x509 -key ./embed-server/certs/embed.key -out ./embed-server/certs/embed.crt -days 365 -subj "/C=RU/ST=State/L=City/O=Organization/CN=embed.sherparpa.ru"
💡 Комментарии к созданию самоподписных сертификатов
mkdir -p ./oais/backend/config/certs/ - создает директорию для сертификатов
openssl genrsa -out ./oais/backend/config/certs/aiserver.key 2048 - генерирует приватный ключ
genrsa- генерация RSA ключа-out file.key- выходной файл2048- длина ключа в битах
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"- информация о субъекте
Проверка созданных сертификатов#
# Проверьте информацию о сертификате
openssl x509 -in ./oais/backend/config/certs/aiserver.crt -text -noout
# Проверьте соответствие ключа и сертификата
openssl rsa -in ./oais/backend/config/certs/aiserver.key -check
💡 Комментарии к проверке сертификатов
openssl x509 -in ./oais/backend/config/certs/aiserver.crt -text -noout - показывает информацию о сертификате
x509- команда для работы с X.509 сертификатами-in file.crt- входной файл сертификата-text- выводит текстовую информацию-noout- не выводит закодированный сертификат
openssl rsa -in ./oais/backend/config/certs/aiserver.key -check - проверяет приватный ключ
rsa- команда для работы с RSA ключами-in file.key- входной файл ключа-check- проверяет корректность ключа
Установка правильных прав доступа#
После копирования или создания сертификатов установите правильные права доступа:
# Для основного сервера
chmod 644 ./oais/backend/config/certs/*.crt
chmod 600 ./oais/backend/config/certs/*.key
# Для сервиса эмбеддингов
chmod 644 ./embed-server/certs/*.crt
chmod 600 ./embed-server/certs/*.key
💡 Комментарии к установке прав доступа
chmod 644 ./oais/backend/config/certs/*.crt - устанавливает права на сертификаты
644- rw-r--r-- (чтение для всех, запись только для владельца)*.crt- все файлы сертификатов
chmod 600 ./oais/backend/config/certs/*.key - устанавливает права на приватные ключи
600- rw------- (чтение и запись только для владельца)*.key- все файлы приватных ключей
Требования к правам:
.crtфайлы: 644 (чтение для всех, запись для владельца).keyфайлы: 600 (чтение и запись только для владельца)
Рекомендации по безопасности#
- Всегда используйте доверенные сертификаты для production-сред
- Регулярно обновляйте сертификаты до истечения срока действия
- Храните приватные ключи в безопасном месте с ограниченными правами доступа
- Мониторьте срок действия сертификатов и настраивайте оповещения
- Используйте strong cipher suites в конфигурации сервера
После получения и настройки сертификатов любым из описанных способов вернитесь к основному руководству по установке Sherpa AI Server.