Let's Encrypt SSL Zertifikat erstellen
Vorbereitungen
Eine Verbindung per SSL/TLS schützt den Datenverkehr, indem Pakete verschlüsselt versendet werden. Dank der Let’s Encrypt Initiative gibt es nun solche SSL Zertifikate auch kostenlos. Der große Vorteil (z.B. gegenüber OpenSSL) besteht darin, dass der Zertifizierer in den gängigen Browsern als vertrauenswürdig eingestuft ist.
Hier soll ein Zertifikat für den Apache Webserver erstellt werden.
Voraussetzung:
- Apache ist installiert
- Domain (DDNS) existiert
Zuerst wird der Apache Server gestoppt
sudo service apache 2 stop
An dieser Stelle kann am Router/Modem auch die Portweiterleitung für 443 (https) zusätzlich zu 80 (http) vorgenommen werden.
Der Rechner kann auch gleich aktualisiert werden:
sudo apt-get update sudo apt-get upgrade
Let's Encrypt SSL Zertifikat erstellen
Um das Let's Encrypt-Tool herunterzuladen, verwenden wir Git. Möglicherweise muss es zuerst installiert werden.
cd ~ git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt
Man benötigt danach alle Domains (Subdomains), für die das Zertifikat gelten soll (z.B. domain.at, www.domain.at, etc.). Im folgenden Beispiel soll nur die Hauptdomaine mit dem Zertifikat versorgt werden.
Der Befehl für die Zertifikatserstellung lautet nun:
./letsencrypt-auto -d domain.at --redirect --apache -m mailaddr@gmx.at
Der --redirect Parameter sorgt dafür, dass http-Verbindungen zu https weitergeleitet werden, die mail-Adresse ist für eine eventuelle Kontaktaufnahme nötig und --apache nimmt bei diesem Webserver auch gleich die erforderlichen Einstellunge vor.
Mit der Option certonly kann man lediglich die Zertifikate anlegen. Sie befinden sich danach im Ordner /etc/letsencrypt/live/ falls man sie für andere Anwendungen benötigt. Der Einbau muss dann manuell vorgenommen werden.
Hilfe erhält man mit ./letsencrypt-auto --help all
Danach können die Zertifikate getestet werden.
sudo /etc/init.d/apache2 start
Aus Sicherheitsgründen sollte in der Datei /etc/apache2/ports.conf nur ein Eintrag für den Port 443 stehen, alle anderen könnten auskommentiert werden.
<IfModule mod_ssl.c> Listen 443 </IfModule>
Dann muss man aber die Domain mit https://domain.at aufrufen. Der Aufruf mit lediglich domain.at bringt einen Fehler.