fix(docker): add missing certs.sh COPY to backend/all-in-one Dockerfile
Backend entrypoint sources certs.sh for CA certificate installation,
but the file was never copied into the Docker image — causing
container crash loop on startup (regression in 7f932610).
Changes:
- docker/backend.Dockerfile, docker/all-in-one.Dockerfile: COPY certs.sh
- docker/backend.entrypoint.sh: remove dead install_llm_ca_certs,
install_certificates (replaced by docker/certs.sh); update @INVARIANT
- backend/src/core/ssl.py: fix describe_context() to report actual
system cert count (SSLContext.capath attr does not exist in Python 3)
- __tests__: rewrite stale tests asserting LLM_SSL_VERIFY=false →
verify=False; behaviour is permanently removed — always CERT_REQUIRED
- backend/tests/integration/test_backend_container.py [new]: 5 tests
verifying certs.sh presence, sourceability, and full-stack smoke
(testcontainers PG → entrypoint → migrations → health)
- conftest.py: restore health-wait loop and fixtures in superset_container
- ADR-0009, README.md, scripts, .env: align docs with centralized SSL
This commit is contained in:
19
README.md
19
README.md
@@ -303,24 +303,19 @@ Entrypoint автоматически:
|
||||
|
||||
Положите `.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).
|
||||
|
||||
### Диагностика
|
||||
### Диагностика SSL
|
||||
|
||||
```bash
|
||||
# Проверка доверия сертификата
|
||||
# Полная проверка цепочки доверия
|
||||
scripts/check_llm_certs.py
|
||||
|
||||
# Принудительное отключение TLS verify (только для отладки)
|
||||
LLM_SSL_VERIFY=false
|
||||
# Контейнерная диагностика
|
||||
scripts/diag_container.py --target your-llm-provider.com:443
|
||||
```
|
||||
|
||||
Сертификаты и централизованный SSL — подробнее в [ADR-0009](docs/adr/ADR-0009-ssl-certificate-management.md).
|
||||
`LLM_SSL_VERIFY` и `LLM_CA_CERT_URLS` удалены в 0.2.x — используйте `CERTS_PATH=./certs`.
|
||||
|
||||
## 🏢 Enterprise Clean Deployment
|
||||
|
||||
Для разворота в корпоративной сети с очищенным дистрибутивом (без тестовых данных, с запретом внешних источников и обязательной compliance-проверкой) используется профиль **enterprise clean**.
|
||||
|
||||
Reference in New Issue
Block a user