Hallo,
bezüglich Let's Encrypt würde ich hier vom Beispiel robigs ausgehen, d.H. ein Let's Encrypt Client holt Zertifikate und legt diese in seiner Ordnerstruktur ab.
Code: Select all
SSLCertificateKeyFile /etc/letsencrypt/live/example.org-0001/privkey.pem
SSLCertificateFile /etc/letsencrypt/live/example.org-0001/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.org-0001/fullchain.pem
Da ich Let's Encrypt selbst noch nicht weitergehend getestet habe nehme ich dieses für das weitere Vorgehen als gegeben an und beschreibe im folgenden eine Möglichkeit, diese als Workaround in KeyHelp zu hinterlegen, sodass diese automatisch durch Let's Encrypt aktuell gehalten werden.
Schritt 1 - Anlegen des Zertifikates in KeyHelp
Hierfür das Let's Encrypt Zertifikat für die fragliche Domain in KeyHelp erstellt. Wie dies im einzelnen funktioniert ist im KeyHelp Adminhandbuch, Punkt 7.1.3.3 (Seite 52 ff.) erläutert. Als Zertifikat sollte hier zunächst das vom Let's Encrypt Client ursprünglich erstellte Zertifikat genutzt werden. Das CA Zwischenzertifikat sollte sich hierbei am Ende der
/etc/letsencrypt/live/example.org-0001/fullchain.pem finden lassen. Sofern Let's Encrypt auch eine Extradatei für das CA Zertifikat anlegt, so kann dies auch genutzt werden. Für Schritt zwei wäre es ansonsten sinnvoll das CA Zertifikat (welches ja gleich bliebe) noch in einer Extradatei zu speichern. (Nennen wir sie:
/etc/letsencrypt/live/example.org-0001/ca.pem)
Somit wäre das Zertifikat zunächst in KeyHelp verfügbar, allerdings manuell eingepflegt wodurch man dieses nach 3 Monaten von Hand updaten müsste. Der Let's Encrypt Client kann dies allerdings für das von ihm verwaltete Zertifikat automatisiert erledigen. Um dies auch in KeyHelp nutzen so können nun zu Punkt 2)
Schritt 2 - Verbinden des von KeyHelp ersten Zertifikates mit Let's Encrypt
KeyHelp erstellt Zertifikate in
/etc/ssl/keyhelp/files (-ca.crt, .key, .crt) und das .pem findet sich in
/etc/ssl/keyhelp/pem/.
Dort lassen sich das entsprechend eben angelegte Zertifikat finden.
Code: Select all
root@demo:/etc/ssl/keyhelp/files# ls -l | grep example.org
-rw------- 1 root root 2246 Apr 28 12:21 example.org_5721e3cb32317-ca.crt
-rw------- 1 keyhelp keyhelp 1994 Apr 28 12:19 example.org_5721e3cb32317.crt
-rw------- 1 keyhelp keyhelp 3292 Apr 28 12:19 example.org_5721e3cb32317.key
root@demo:/etc/ssl/keyhelp/pem# ls -l | grep example.org
-rw------- 1 root root 7038 Apr 28 12:20 example.org_5721e3cb32317.pem
Die so erstellten Zertifikatsdateien müssen nun durch symbolische Links auf die von Let's Encrypt verwalteten Dateien ersetzt werden:
Code: Select all
## Löschen der Zertifikate
rm /etc/ssl/keyhelp/files/example.org_5721e3cb32317-ca.crt
rm /etc/ssl/keyhelp/files/example.org_5721e3cb32317.crt
rm /etc/ssl/keyhelp/files/example.org_5721e3cb32317.key
rm /etc/ssl/keyhelp/pem/example.org_5721e3cb32317.pem
## Erstellen der Symlinks
ln -s /etc/letsencrypt/live/example.org-0001/ca.pem /etc/ssl/keyhelp/files/example.org_5721e3cb32317-ca.crt
ln -s /etc/letsencrypt/live/example.org-0001/cert.pem /etc/ssl/keyhelp/files/example.org_5721e3cb32317.crt
ln -s /etc/letsencrypt/live/example.org-0001/privkey.pem /etc/ssl/keyhelp/files/example.org_5721e3cb32317.key
ln -s /etc/letsencrypt/live/example.org-0001/fullchain.pem /etc/ssl/keyhelp/pem/example.org_5721e3cb32317.pem
(Der Anschaulichkeit halber habe ich hier mit absoluten Pfadangaben gearbeitet.)
Nachdem dies durchgeführt wurde, so fehlt nur noch der Reload des Webservers, sodass dieser auch die neuen Zertifikate nutzt:
Anmerkung: Die Anleitung ist hier ohne Gewähr, da Let's Encrypt wie bereits geschrieben noch nicht von uns getestet wurde. Auch sollte entsprechende Erfahrung mit der Arbeit auf der Konsole vorhanden sein.