docs(readme): add SSL/TLS configuration section with passphrase and PKCS#12 options
This commit is contained in:
54
README.md
54
README.md
@@ -267,6 +267,60 @@ pytest tests/test_auth.py::test_create_user
|
||||
|
||||
> HTML-отчёты coverage по каждому стеку открываются из сводного отчёта по ссылкам.
|
||||
|
||||
## 🔐 SSL/TLS конфигурация
|
||||
|
||||
### Сертификаты для HTTPS (nginx)
|
||||
|
||||
Для включения HTTPS поместите файлы сертификатов в директорию `./certs/`:
|
||||
|
||||
**Вариант A — отдельные файлы (без пароля):**
|
||||
```
|
||||
./certs/server.crt # SSL сертификат
|
||||
./certs/server.key # Приватный ключ (незашифрованный)
|
||||
```
|
||||
|
||||
**Вариант B — зашифрованный ключ + пароль:**
|
||||
```
|
||||
./certs/server.crt # SSL сертификат
|
||||
./certs/server.key # Приватный ключ (зашифрован, с DEK-Info)
|
||||
SSL_KEY_PASSPHRASE=my-passphrase # переменная окружения для расшифровки
|
||||
```
|
||||
|
||||
**Вариант C — PKCS#12 контейнер:**
|
||||
```
|
||||
./certs/server.p12 # Контейнер с сертификатом + ключом
|
||||
SSL_KEY_PASSPHRASE=my-passphrase # пароль от контейнера
|
||||
```
|
||||
|
||||
Entrypoint автоматически:
|
||||
1. Извлечёт `.crt` и `.key` из `.p12` (если нет отдельных файлов)
|
||||
2. Расшифрует приватный ключ через `openssl rsa` (если есть `SSL_KEY_PASSPHRASE`)
|
||||
3. Передаст расшифрованный ключ nginx (ключ остаётся в tmpfs контейнера)
|
||||
|
||||
> **Безопасность:** Расшифрованный ключ хранится только в tmpfs `/etc/nginx/ssl/` внутри контейнера и не пишется на диск хоста. Пароль задаётся через переменную окружения, а не через файл на volume.
|
||||
|
||||
### Корпоративные CA-сертификаты
|
||||
|
||||
Положите `.crt`/`.pem` файлы в `./certs/` — entrypoint установит их в системное хранилище Alpine и NSS (Chromium/Playwright). Поддерживаются цепочки из нескольких CA (Root → Intermediate).
|
||||
|
||||
### LLM CA-сертификаты
|
||||
|
||||
Если LLM-провайдер использует корпоративный PKI — укажите URL для скачивания CA-сертификатов:
|
||||
```bash
|
||||
LLM_CA_CERT_URLS="http://pki.company.com/root-ca.crt http://pki.company.com/intermediate-ca.crt"
|
||||
```
|
||||
Сертификаты скачиваются на старте backend-контейнера, конвертируются из DER в PEM при необходимости и устанавливаются в системное хранилище. Подробнее — в [ADR-0009](docs/adr/ADR-0009-ssl-certificate-management.md).
|
||||
|
||||
### Диагностика
|
||||
|
||||
```bash
|
||||
# Проверка доверия сертификата
|
||||
scripts/check_llm_certs.py
|
||||
|
||||
# Принудительное отключение TLS verify (только для отладки)
|
||||
LLM_SSL_VERIFY=false
|
||||
```
|
||||
|
||||
## 🏢 Enterprise Clean Deployment
|
||||
|
||||
Для разворота в корпоративной сети с очищенным дистрибутивом (без тестовых данных, с запретом внешних источников и обязательной compliance-проверкой) используется профиль **enterprise clean**.
|
||||
|
||||
Reference in New Issue
Block a user