Extern geliefertes Zertifikat verwenden, statt es zu kopieren
Liefert eine fremde Stelle das Zertifikat in ein Verzeichnis und
ersetzt es dort beim Erneuern - gleicher Dateiname, neuer Inhalt -,
passt der uebliche Weg nicht: der Proxy Manager kopiert hochgeladene
Zertifikate nach /data/custom_ssl/npm-<id>/ und bekommt von einer
ersetzten Datei nichts mit.
Das Verzeichnis wird deshalb schreibgeschuetzt als /certs in den
Container gehaengt (neuer Mount in der compose-Datei, Vorgabe
./data/npm/external-certs), und "cert external" ersetzt die beiden
Dateien unter custom_ssl durch Verweise darauf. Am Abbild
jc21/nginx-proxy-manager:2 nachgemessen: nginx liefert danach das
externe Zertifikat, und ein Austausch der Datei wirkt - allerdings erst
nach einem Neuladen.
Genau das ist der Haken, und er ist belegt: ohne Neuladen liefert nginx
weiterhin das alte Zertifikat. Dafuer gibt es
cert external --refresh vergleicht den SHA256-Fingerabdruck mit
dem zuletzt gesehenen und laedt nur bei
Aenderung neu
cert external --watch on traegt das als taeglichen cron-Eintrag ein
Vor dem Umstellen wird geprueft, ob beide Dateien lesbar sind, ob
Zertifikat und Schluessel zusammengehoeren (Vergleich der oeffentlichen
Schluessel - das faengt auch EC-Schluessel) und wie lange es noch gilt.
Beide Faelle sind durchgespielt: ein fremder Schluessel wird abgelehnt,
ein in fuenf Tagen ablaufendes Zertifikat gemeldet.
"cert external --off --id N" nimmt es zurueck und legt wieder eigene
Kopien an. In der Oberflaeche ist aus dem Menuepunkt "Zertifikat" ein
kleines Menue geworden.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -220,3 +220,23 @@ FW_AGENT=off
|
||||
# Anfuehrungszeichen (das erledigt "cmk-manage.sh config set" selbst).
|
||||
# FW_EXTRA_PORTS=3000/tcp=Grafana,5667/tcp=NSCA,514/udp=Syslog
|
||||
FW_EXTRA_PORTS=
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# Von aussen geliefertes Zertifikat
|
||||
#
|
||||
# Wird das Zertifikat von einer fremden Stelle in ein Verzeichnis
|
||||
# gelegt und beim Erneuern dort ersetzt (gleicher Dateiname, neuer
|
||||
# Inhalt), dann zeigt der Proxy Manager auf diese Dateien, statt sie zu
|
||||
# kopieren. Das Verzeichnis wird schreibgeschuetzt als /certs in den
|
||||
# Container gehaengt - nach einer Aenderung ist ein "up" noetig.
|
||||
#
|
||||
# cmk-manage.sh cert external --domain kunde.example.com
|
||||
# ---------------------------------------------------------------------
|
||||
CERT_EXTERNAL_DIR=./data/npm/external-certs
|
||||
CERT_EXTERNAL_FULLCHAIN=fullchain.pem
|
||||
CERT_EXTERNAL_KEY=privkey.pem
|
||||
|
||||
# Taeglich nachsehen, ob die Datei ausgetauscht wurde, und nginx dann
|
||||
# neu laden. Ohne das liefert nginx bis zum naechsten Neustart weiter
|
||||
# das alte Zertifikat.
|
||||
CERT_EXTERNAL_WATCH=off
|
||||
|
||||
Reference in New Issue
Block a user