TLS Zertifikat mit LEGO: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(title)
KKeine Bearbeitungszusammenfassung
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 betrieben, 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.
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 ww-Subdomain:
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. in diesem Verzeichnis befinden sich die Daten zum neu angelegten Letsencrypt-Account und das Zertifikat mit dem zugehörigen private Key.
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:

Version vom 28. Juli 2021, 22:45 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