Die eigene Webseite mit HTTPS absichern – Letsencrypt und Apache

Da es nun endlich eine Zertifizierungsstelle gibt, die sowohl kostenlos als auch einfach SSL-Zertifikate ausstellt, habe ich mich mal daran versucht. Insbesondere wollte ich natürlich wissen, wie einfach es wirklich ist – und wurde positiv überrascht. Wer schon mal auf seinem Server die Kommandozeile benutzt hat, kann den ganzen Prozess in 10 Minuten abschließen. 


Was ihr benötigt für Letsencrypt

  • Apache (nur hierfür gibt es derzeit die volle Unterstützung)
  • Letsencrypt Programm
  • Git
  • Root-Zugang zum Server

Den Letsencrypt Client installieren

Wer noch kein Git installiert hat, beginnt damit.

Der Letsencrypt Client ist ein Git-Archiv und wird mit

heruntergeladen und in ein beliebiges Verzeichnis „installiert“.

Zertifikat beantragen

Wechselt in das von Git soeben erstellte Verzeichnis und startet die Anwendung. Als Parameter übergebt ihr den Webserver und die Domains, die ihr registrieren wollt. Wichtig zu wissen ist, dass Letsencrypt keine Wildcard-Zertifikate erstellt und ihr alle Subdomains explizit nennen müsst. Dies können allerdings bis zu 100 Stück sein. Benutzt für jede Subdomain den Schalter -d und schreibt den Namen inklusive Domain dahinter.

Da ihr ein Benutzerkonto für die Verwaltung eurer Zertifikate anlegen müsst, wird euch die Software nach einer E-Mailadresse fragen und verlangen, dass ihr die AGB akzeptiert.

Danach kommuniziert die Software mit der Zertifizierungsstelle und verifiziert, dass ihr tatsächlich Kontrolle über die Domain habt. Dafür benötigt ihr ein wenig Geduld – holt euch also derweil einen Kaffee. Ist das Zertifikat erstellt werden alle benötigten Informationen unter /etc/letsencrypt/live/meinedomain.de/ abgelegt.

Apache einrichten

Für die HTTPS-Variante eurer Seite benötigt ihr einen eigenen vhost. Den richtet ihr unter /etc/apache/sites-enabled ein. Die Datei könnt ihr nennen wie ihr wollt, wir nehmen hier mal default-ssl.conf.

In diese schreibt ihr dann folgendes.

Als DocumentRoot nehmt ihr natürlich das selbe wie schon für eure normale Seite.

Als nächstes müssen wir noch das SSL-Modul aktivieren und den Server einmal neu starten.

Und das war’s auch schon.

Da das ganze noch in der Beta-Phase ist, habe ich den Blog noch nicht umgestellt. Hier: https://poe-php.de könnt ihr euch aber davon überzeugen, dass es funktioniert.

Gültigkeit des Zertifikats

Von Letsencrypt erstellte Zertifikate sind nur 90 Tage lang gültig. Alles was man für eine Verlängerung tun muss ist aber lediglich den Client alle 89 Tage auszuführen und die Verlängerung wird automatisch erledigt. Das lässt sich auch als Cronjob einrichten. Vor Ablauf wird dir natürlich eine Erinnerung per E-Mail geschickt.

Hierfür könnt ihr euch ein kleines Shell-Skript anlegen:

Literatur zum nachlesen

Die Seite der Letsencrypt Software: https://github.com/letsencrypt/letsencrypt
Apache-SSL-Modul: https://wiki.ubuntuusers.de/Apache/SSL/