Seit ein paar Jahren benutze ich LetsEncrypt-Zertifikate. Ursprünglich fand ich’s mal eine tolle Idee, SAN-Zertifikate zu verwenden. Das sind einzelne Zertifikate, die für mehrere Domains ausgestellt werden, beispielsweise für
- daemons-point.com
- www.daemons-point.com
- internal.daemons-point.com
- mail.daemons-point.com
- etc
Wahrscheinlich war meine Idee damals, dass wir auf diese Weise weniger wahrscheinlich in die LetsEncrypt-Begrenzungen (Anzahl der Zertifikate, etc) laufen.
Heute ist meine Bewertung diese:
- die LetsEncrypt-Begrenzungen spielen für uns keine Rolle
- wir sind unflexibel, wenn unsere Zertifikate und Domains gebündelt sind, beispielsweise ist es problematisch, einzelne Domains umzuziehen von “intern gehostet” zu “extern” und umgekehrt
Also: Wir müssen die Zertifikate auftrennen!
Ermitteln der aktuell verwendeten Zertifikate
Welche Zertifikate finden wir? Wie sehen die Subject/CN und DNS-Einträge aus?
1 2 3 4 5 6 7 8 9 10 11 |
|
pag.support
chained-san.pem
- Subject: CN=pag.support
- DNS:pag.support
- DNS:ppnproxy.pag.support
- DNS:sysmt.pag.support
chained.pem
Uralt, nicht mehr verwendet!
signed-san.crt
Uralt, nicht mehr verwendet!
signed.crt
Uralt, nicht mehr verwendet!
internal.daemons-point.com
Wie’s aussieht, sind hier zwar LetsEncrypt-Zertifikate verfügbar, sie werden aber nicht verwendet.
Neuestes Zertifikat: chained-san.pem, gültig bis 18. Jubni 2020
- CN=internal.daemons-point.com
- DNS:internal.daemons-point.com
- DNS:mail.daemons-point.com
helsinki
chained-san.pem
- Subject: CN = extern.daemons-point.com
- DNS:extern.daemons-point.com
signed-san.crt
Uralt, nicht mehr verwendet!
extern.daemons-point.com.crt
- Subject: CN = extern.daemons-point.com
- DNS:extern.daemons-point.com
tk.daemons-point.com.crt
- Subject: CN = tk.daemons-point.com
- DNS:tk.daemons-point.com
Aktionen
Aktuell verwendete SAN-Zertifikate
- pag.support
- pag.support
- ppnproxy.pag.support
- sysmt.pag.support … entfällt
- internal.daemons-point.com
- internal.daemons-point.com
- mail.daemons-point.com
Einzelne Keys und CSRs
Hilfsskript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Angewendet habe ich das Hilfsskript so:
- Beide Funktionen in ein geöffnetes BASH-Fenster reinkopiert
- Keys für alle Services erzeugen:
1 2 3 4 |
|
- CSRs für alle Services erzeugen:
1 2 3 4 |
|
- Auf die richtigen Rechner kopieren:
- {ppnproxy.,}pag.support.{csr,key} –> Rechner “pag.support”
- {internal.,mail.}daemons-point.com.{csr,key} –> Rechner “internal.daemons-point.com”
- Erneuerungsskript: renew.sh … auch auf die Rechner kopieren
pag.support
Neue Dateien:
- renew.sh: Neues Skript
- /etc/apache2/ssl.letsencrypt/pag.support.crt
- /etc/apache2/ssl.letsencrypt/ppnproxy.pag.support.crt
- /etc/apache2/ssl.letsencrypt/private/pag.support.key
- /etc/apache2/ssl.letsencrypt/private/ppnproxy.pag.support.key
- /var/www/acme-certificates/pag.support.crt
- /var/www/acme-certificates/ppnproxy.pag.support.crt
Geänderte Dateien:
- /etc/crontab: Neues Skript eintragen für pag.support und ppnproxy.pag.support
- /etc/sudoers: ApacheHTTPD durchstarten via “systemctl”
- /etc/apache2/sites-available/https_pag.support.conf: Pfad zum CRT und KEY angepasst
- /etc/apache2/sites-available/https_ppnproxy.pag.support.conf: Pfad zum CRT und KEY angepasst
Gelöschte Dateien:
- renew-cert.sh: Altes Skript, löschen!
- acme_tiny.py
- domain.csr
- domain-san-20191031.csr
- domain-san.csr
- intermediate.pem
- /etc/apache2/sites-available/https_sysmt.pag.support.conf: Auch mit “a2dissite” deaktivieren!
- /etc/apache2/sites-available/http_sysmt.pag.support.conf: Auch mit “a2dissite” deaktivieren!
- /etc/apache2/ssl.letsencrypt/chained-san.pem
- /etc/apache2/ssl.letsencrypt/private/domain.key
- /var/www/acme-certificates/chained-san.pem
internal.daemons-point.com
Ignorieren wir erstmal, da hier die LetsEncrypt-Zertifikate aktuell nicht verwendet werden!
Änderungen
- 2020-05-09: Erste Version