feat(ssl): add passphrase-protected key and PKCS#12 support in nginx entrypoint
- docker/frontend.entrypoint.sh: add 3 new functions: - extract_p12_if_needed — openssl pkcs12 extraction to .crt+.key - resolve_ssl_passphrase — read SSL_KEY_PASSPHRASE env var - decrypt_key_if_needed — openssl rsa decryption before nginx start - Pipeline: install CA -> extract p12 -> get passphrase -> select config -> decrypt key -> start nginx - Crash-early: encrypted key without SSL_KEY_PASSPHRASE exits entrypoint - docker-compose.enterprise-clean.yml: add SSL_KEY_PASSPHRASE to frontend env - .env.enterprise-clean.example: document SSL_KEY_PASSPHRASE usage - build.sh: add SSL_KEY_PASSPHRASE to generated deploy compose
This commit is contained in:
@@ -39,10 +39,31 @@ FRONTEND_SSL_PORT=443
|
||||
# ./certs/server.crt
|
||||
# ./certs/server.key
|
||||
#
|
||||
#
|
||||
# Для PKCS#12 — положите server.p12 (контейнер с сертификатом + ключом):
|
||||
# ./certs/server.p12
|
||||
# SSL_KEY_PASSPHRASE=my-passphrase
|
||||
# (entrypoint извлечёт server.crt и server.key автоматически)
|
||||
#
|
||||
# Если приватный ключ зашифрован, укажите пароль:
|
||||
# SSL_KEY_PASSPHRASE=my-passphrase
|
||||
# (entrypoint расшифрует ключ перед передачей nginx)
|
||||
#
|
||||
# Если директория пуста или не существует — сертификаты не устанавливаются,
|
||||
# nginx работает в HTTP-only режиме.
|
||||
CERTS_PATH=./certs
|
||||
|
||||
# ======================================================================
|
||||
# SSL пароль (опционально)
|
||||
# ======================================================================
|
||||
# Пароль от приватного ключа (если server.key зашифрован) или от .p12 контейнера.
|
||||
# Оставьте пустым, если ключ не зашифрован.
|
||||
# Пример:
|
||||
# SSL_KEY_PASSPHRASE=my-ssl-passphrase
|
||||
# SSL_KEY_PASSPHRASE=
|
||||
# shellcheck disable=SC2148
|
||||
SSL_KEY_PASSPHRASE=
|
||||
|
||||
# ======================================================================
|
||||
# LLM CA-сертификаты (скачка по URL на старте контейнера)
|
||||
# ======================================================================
|
||||
|
||||
Reference in New Issue
Block a user