Mittels SSL-Zertifikaten wird auf gut deutsch gesagt ein schweine Geld verdient. Seit ca. 2016 gibt es dank der letsencrypt-Organisation, zu der große Mächte wie Facebook, Google und Mozilla beitragen, endlich eine Möglichkeit die eigene Website mit wenigen Schritten auf eine sichere SSL Verbindung umzurüsten.

Certbot erstellt automatisch die benötigten Zertifikatsdateien und Verknüpfungen in deinem Webserver. Zusätzlich wird der Apache automatisch vorkonfiguriert.

Ich möchte in 4 Schritten zeigen wie man mit SSH-Zugang auf dem eigenen Apache Web-Server auf Debian 8 schnell und einfach SSL einrichtet:

Rahmenbedingungen für deinen Server installieren (Certbot installieren)

apt-get install python-certbot-apache -t jessie-backports

Certbot starten (eventuell mit sudo Befehl ausführen)

certbot --authenticator webroot --installer apache

Certbot Script-Anweisungen folgen:

Es werden nun die Domains abgefragt, welche man über SSL erreichbar machen möchte. Durch die einfache Angabe der gewünschten Domain wird das entsprechende Zertifikat installiert.

Während der Konfiguration fragt der Client auch ab, ob man alle HTTP-Requests auf HTTPS umleiten möchte und erstellt die entsprechende Konfiguration in /etc/apache2/sites-available/ mit der Endung -le-ssl.conf.

Sollten bereits SSL-Webseiten konfiguriert sein, die ersetzt werden sollen, sollten die kompletten SSL-Virtualhost-Direktiven entfernt werden.

Für jede Domain, die man im Apache anlegt, kann man einfach den Client neu ausführen und die entsprechende Domain auswählen, um sie per SSL erreichbar zu machen.

Cron-Job für ZertAuth anlegen

Als letzten Schritt muss man einen Cron-Job anlegen. Grund hierfür ist folgender: Die generierten Zertifikate sind nur 3 Monate gültig. Nach drei Monaten laufen diese ab und im Browser wird die Seite als unsicher mit abgelaufenem Zertifikat angezeigt.

Dies ist natürlich der Zertifikatslobby geschuldet, die auch noch mit ihren Produkten Geld verdienen möchte. Schließlich legt man gut und gerne für ein richtiges SSL Zertifikat, welches 20 Jahre gültig ist und Wildcard-Domains beiinhaltet 120 Euro im Monat hin. Dies kann man auch gerne als Unternehmen bezahlen, welches mit den eigenen Produkten im Internet Geld verdient, aber nicht als armer kleiner Blogger im Internet!

Man kann den Befehl um die Zertifikate zu erneuern auch manuell ausführen:

certbot renew --dry-run

Oder man legt direkt einen Cron-Job an,welcher diese Aufgabe automatisch ein mal am Tag (idealerweise um 3 Uhr nachts) versucht zu erledigen:

0       3       *       *       *       /usr/bin/certbot renew -q --post-hook "/usr/sbin/service apache2 restart"

Fazit

Durch den neuen Client ist Let’s Encrypt nun noch sehr viel leichter zu bedienen und es gibt auch für unbedarfte „Administratoren“ keine Entschuldigung mehr, Webseiten ohne SSL zu betreiben.

Durch den neuen Renew-Prozess, der auch prüft, ob ein Renew überhaupt notwendig ist, ist nach dem Erstellen von Zertifikaten nur im Fehlerfall eine Handlung des Administrators notwendig. Prüft man nun noch mit Hilfe eines Monitoring-Systems auf ablaufende SSL-Zertifikate kann auch hier nicht viel schiefgehen und man könnte sogar die Mails ignorieren… was ich natürlich aber nicht empfehle!