Certbot ist der neue Client von Let’s Encrypt und ist Nachfolger des alten letsencrypt-auto Komandozeilen Tools. Ist die Webserverkonfiguration nicht kompliziert und wird Apache verwendet, lassen sich damit ganz leicht Zertifikate erstellen und erneuern.
Installation
für die Installation genügen einige Kommandos in der Konsole. Diese müssen als Root User ausgeführt werden.
cd /opt wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto
Den Pfad ( in diesem Beispiel: opt) kann man natürlich frei wählen.
Die Funktion des Tools, lässt sich über folgenden Befehl testen. Eventuell werden beim ersten Aufruf noch automatisch, notwendige Pakete installiert und / oder das Tool aktualisiert.
/opt/certbot-auto --help
Zertifikate erstellen
Falls die Konfiguration bestimmte Voraussetzungen erfüllt kann certbot nicht nur direkt selbst HTTPS aktivieren sondern auch automatisch Zertifikate dafür beantragen. Möglich ist dies über:
/opt/certbot-auto
Hier können dann alle erkannten Domains ausgewählt und die Verschlüsselung aktiviert werden. Die Apache Konfiguration sollte aber vorher einmal gesichert werden.
Wer auf Nummer sicher gehen will, lässt certbot nur die Zertifikate erstellen und kümmert sich selbst um die Konfiguration. Hier ein Beispiel für drei Domains in einem Zertifikat.
/opt/certbot-auto certonly --apache -d domain.de -d subdomain.domain.de anderesub.domain.de
Schlägt dies fehl schafft es certbot nicht das Apache-Module zur Authentifizierung zu aktivieren. Eine Möglichkeit wäre dann noch die Webroot Option, wobei diese mit heute üblichen Rewrites gerne fehlschlägt. Am Ende bleibt somit nur noch der Standalone Modus.
/opt/certbot-auto certonly --standalone -d domain.de -d subdomain.domain.de anderesub.domain.de
Dazu muss aber der Webserver beendet worden sein damit certbot eine eigenen Server auf Port 80 starten kann.
Zertifikate erneuern
Hier offenbarten die alten Clients bislang noch schwächen. Meist mussten selbst kleine Skripte geschrieben werden. Aber dies hat sich inzwischen geändert.
In den meisten Fällen reicht folgender Befehl als Cronjob
/opt/certbot-auto renew
Hier werden alle Zertifikate durchlaufen und bei Bedarf erneuert.
Problematisch ist dies nur für die mit Standalone erstellten Zertifikate. Da hier der Apache noch läuft und certbot keinen Webserver auf Port 80 starten kann.
/opt/certbot-auto renew --pre-hook "/etc/init.d/apache2 stop" --post-hook "/etc/init.d/apache2 start"
Das stoppt den Apache falls ein Zertifikat erneuert werden muss und startet diesen danach wieder.
Quellen: