TLS Zertifikat mit LEGO: Unterschied zwischen den Versionen
(title) |
KKeine Bearbeitungszusammenfassung |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
Für den zentralen Apache Webserver werden bei Hostsharing automatisch TLS Zertifikate über den Dienst "Lets Encrypt" erzeugt und verlängert. Das wird über die Domain-Option "letsencrypt" gesteuert. | Für den zentralen Apache Webserver werden bei Hostsharing automatisch TLS Zertifikate über den Dienst "Lets Encrypt" erzeugt und verlängert. Das wird über die Domain-Option "letsencrypt" gesteuert. | ||
Teilweise will man aber eigene Serverdienste | Teilweise will man aber eigene Serverdienste betreiben, die nicht über HTTP hinter dem Apache-Proxy erreichbar sind. Beispiele dafür sind ein eigener XMPP Server oder ein Mumble Server. Für diese Server können die Nutzer:innen der Hostsharing Plattform sehr leicht TLS Zertifikate erzeugen, indem sie den zentral installierten LEGO-Bot nutzen. | ||
== Einrichtung == | == Einrichtung == | ||
Zeile 11: | Zeile 11: | ||
Ich nutze hier den Service-User "xyz00-mumble" als Beispiel. Bei diesem User sei die Domain "mumble.hs-example.de" aufgeschaltet. | Ich nutze hier den Service-User "xyz00-mumble" als Beispiel. Bei diesem User sei die Domain "mumble.hs-example.de" aufgeschaltet. | ||
Dann lösche ich bei der Domain die HTTP-Weiterleitungen und die | Dann lösche ich bei der Domain die HTTP-Weiterleitungen und die www-Subdomain: | ||
rm -rf ~/doms/mumble.hs-example.de/subs/www \ | rm -rf ~/doms/mumble.hs-example.de/subs/www \ | ||
Zeile 25: | Zeile 25: | ||
--http run | --http run | ||
Bei der erfolgreichen Ausführung diese Befehls wurde ein verstecktes Verzeichnis ".lego" angelegt. | Bei der erfolgreichen Ausführung diese Befehls wurde ein verstecktes Verzeichnis ".lego" angelegt. In diesem Verzeichnis befinden sich die Daten zum neu angelegten Letsencrypt-Account und das Zertifikat mit dem zugehörigen private key. | ||
Die Daten des Zertifikates kann man wie folgt auslesen: | Die Daten des Zertifikates kann man wie folgt auslesen: |
Aktuelle Version vom 28. Juli 2021, 22:47 Uhr
TLS Zertifikat mit LEGO
Für den zentralen Apache Webserver werden bei Hostsharing automatisch TLS Zertifikate über den Dienst "Lets Encrypt" erzeugt und verlängert. Das wird über die Domain-Option "letsencrypt" gesteuert.
Teilweise will man aber eigene Serverdienste betreiben, die nicht über HTTP hinter dem Apache-Proxy erreichbar sind. Beispiele dafür sind ein eigener XMPP Server oder ein Mumble Server. Für diese Server können die Nutzer:innen der Hostsharing Plattform sehr leicht TLS Zertifikate erzeugen, indem sie den zentral installierten LEGO-Bot nutzen.
Einrichtung
Zunächst muss eine Domain vorhanden sein, auf die das Zertifikat ausgestellt werden soll und die im Webspace über HTTP erreichbar ist.
Ich nutze hier den Service-User "xyz00-mumble" als Beispiel. Bei diesem User sei die Domain "mumble.hs-example.de" aufgeschaltet.
Dann lösche ich bei der Domain die HTTP-Weiterleitungen und die www-Subdomain:
rm -rf ~/doms/mumble.hs-example.de/subs/www \ ~/doms/mumble.hs-example.de/subs-ssl/www \ ~/doms/mumble.hs-example.de/htdocs/.htaccess \ ~/doms/mumble.hs-example.de/htdocs-ssl/.htaccess
Das erste Zertifikat wird mit dem folgenden Befehl erzeugt:
/usr/bin/lego -d mumble.hs-example.de -a \ --email webmaster@mumble.hs-example.de -k ec256 \ --http.webroot $HOME/doms/mumble.hs-example.de/htdocs \ --http run
Bei der erfolgreichen Ausführung diese Befehls wurde ein verstecktes Verzeichnis ".lego" angelegt. In diesem Verzeichnis befinden sich die Daten zum neu angelegten Letsencrypt-Account und das Zertifikat mit dem zugehörigen private key.
Die Daten des Zertifikates kann man wie folgt auslesen:
openssl x509 -in .lego/certificates/mumble.hs-example.de.crt -noout -text
regelmäßige Verlängerung
Für die automatische Verlängerung des Zertifikats können wir einen Cronjob aufsetzen, der zum Beispiel täglich oder wöchentlich läuft:
$ cat bin/lego-renew #!/bin/bash HOME=/home/pacs/xyz00/users/mumble /usr/bin/lego -d mumble.hs-example.de -a \ --email webmaster@mumble.hs-example.de -k ec256 \ --http.webroot $HOME/doms/mumble.hs-example.de/htdocs \ --http renew
Die Ausführung des Skriptes wird über einen Cronjob gesteuert:
$ crontab -l # m h dom mon dow command HOME=/home/pacs/xyz00/users/mumble MAILTO=webmaster@mumble.hs-example.de # Renew mumble cert 34 4 * * 2 $HOME/bin/lego-renew