Caddy: Zertifikat wird automatisch im Container erzeugt statt manuell per openssl auf dem Host
Entrypoint im caddy-Service prueft beim Start ob /certs/dashboard.{crt,key}
schon existiert und erzeugt es sonst selbst (apk add openssl + req -x509,
100 Jahre). Persistent im Volume, kein manueller Schritt mehr noetig.
Manuelle Erzeugung bleibt als Fallback in der README dokumentiert (z.B.
fuer eigenes /CN).
This commit is contained in:
+22
-1
@@ -234,12 +234,33 @@ services:
|
||||
- hermes-agent-dashboard
|
||||
volumes:
|
||||
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
||||
- ./hermes-data/caddy-certs:/certs:ro
|
||||
# kein :ro mehr -- der Entrypoint unten schreibt das Zertifikat selbst
|
||||
# ins Volume, wenn noch keins da ist.
|
||||
- ./hermes-data/caddy-certs:/certs
|
||||
- ./hermes-data/caddy-data:/data
|
||||
- ./hermes-data/caddy-config:/config
|
||||
environment:
|
||||
- HERMES_DASHBOARD_USER=${HERMES_DASHBOARD_USER:-admin}
|
||||
- CADDY_BASIC_AUTH_HASH=${CADDY_BASIC_AUTH_HASH:?CADDY_BASIC_AUTH_HASH muss in .env gesetzt sein - siehe .env.example}
|
||||
# Erzeugt beim allerersten Start automatisch ein selbstsigniertes
|
||||
# 100-Jahre-Zertifikat im /certs-Volume (persistent, ueberlebt Neustarts),
|
||||
# kein manueller openssl-Befehl auf dem Host mehr noetig. apk add ist
|
||||
# noetig, weil das caddy:2-alpine-Image openssl nicht mitbringt.
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
command:
|
||||
- |
|
||||
set -e
|
||||
if [ ! -f /certs/dashboard.crt ] || [ ! -f /certs/dashboard.key ]; then
|
||||
echo "[caddy-init] Kein Zertifikat in /certs gefunden -- erzeuge selbstsigniertes 100-Jahre-Zertifikat..."
|
||||
apk add --no-cache openssl >/dev/null
|
||||
openssl req -x509 -nodes -newkey rsa:4096 \
|
||||
-keyout /certs/dashboard.key -out /certs/dashboard.crt \
|
||||
-days 36500 -subj "/CN=hermes-dashboard"
|
||||
echo "[caddy-init] Zertifikat erzeugt."
|
||||
else
|
||||
echo "[caddy-init] Zertifikat bereits vorhanden, ueberspringe Erzeugung."
|
||||
fi
|
||||
exec caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
|
||||
|
||||
networks:
|
||||
hermes-net:
|
||||
|
||||
Reference in New Issue
Block a user