Установка и настройка 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 Encrypt
  • yourdomain.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 copy
  • fullchain.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 (чтение и запись только для владельца)

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

  1. Всегда используйте доверенные сертификаты для production-сред
  2. Регулярно обновляйте сертификаты до истечения срока действия
  3. Храните приватные ключи в безопасном месте с ограниченными правами доступа
  4. Мониторьте срок действия сертификатов и настраивайте оповещения
  5. Используйте strong cipher suites в конфигурации сервера

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