(Hinweis: Untenstehende Anleitung funktioniert mit Ubuntu 16.04 und 18.04. Für Ubuntu 20.04 nehmt bitte diese Anleitung:
Die Zertifizierungsstelle Let’s Encrypt (letsencrypt.org) hat sich auf die Fahnen geschrieben, für jeden Serverbetreiber einfach zu installierende TLS-Zertifikate (früher SSL) bereitzustellen – und das dazu noch kostenlos. Ich habe auf meinem Ubuntu-Server (Version 16.04), auf dem Apache läuft, mit wenigen Mausklicks ein Zertifikat erhalten, sodass sich meine Domain mit einem schönen grünen “https” präsentierte. Voraussetzung ist, dass man über eine eigene Domain verfügt, Apache installiert hat und zumindest eine index.html-Seite im Document Root liegen hat. Als erstes habe ich mir die Client-Software Certbot bei Github heruntergeladen.
git clone github.com/certbot/certbot
Wechsel ins Verzeichnis certbot:
cd certbot
Nach Eingabe von
./certbot-auto
werden über 170 MB an zusätzlich notwendigen Paketen installiert. In dem Prozess erscheint eine Auswahlmaske (“Which names would you like to activate HTTPS for”), die die gewünschte Domain aufführen sollte. Mit OK wird bestätigt, und anschließend kann man seine E-Mail-Adresse eintragen. Als nächstes stimme ich den Lizenzbedingungen zu. Schließlich wird noch gefragt, ob alle Domainanfragen auf HTTPS geleitet werden sollen. Das möchte ich, und so wähle ich “Secure” aus.
Mit einem Glückwunsch zu erfolgreicher Installation wird die Empfehlung ausgesprochen, die neue Konfiguration unter ssllabs.com
prüfen zu lassen. Die Prüfung fällt völlig zufriedenstellend aus, meine Domain erhält ein grünes “A”. Auch der Aufruf meiner Domain unter mydomain.de wird sofort umgeleitet zu mydomain.
Auch dieses Seite kann beim Aufspüren von SSL-Fehlern hilfreich sein: https://www.jitbit.com/sslcheck/
Gebe ich allerdings www.mydomain.de ein, erfolgt die Übertragung nicht mehr verschlüsselt. Standardmäßig fügt der Certbot-Client in die Datei mydomain.conf, die unter /etc/apache2/sites-available liegt, folgende Zeilen hinein:
RewriteCond %{SERVER_NAME} =mydomain.de [OR] RewriteCond %{SERVER_NAME} =*.mydomain.de RewriteRule ^ %{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
Diese drei Zeilen ersetze ich durch:
RewriteCond %{HTTP_HOST} !^mydomain\.de$ [NC,OR] RewriteCond %{HTTPS} =off RewriteRule ^(.*)$ mydomain.de/$1 [R=301,L]
Nach Neustart des Apache-Servers
sudo service apache2 restart
wird auch www.mydomain.de zu https umgeleitet.
Typo3 und baseURL
Bei einer Typo3-Installation ist es mir passiert, dass das ganze Layout der Seite zerschossen war, nachdem ich die oben beschriebenen Schritte durchgeführt hatte. Der Grund lag in der Zeile
baseURL = {$siteURL}
Nachdem ich sie geändert hatte zu
baseURL = {$siteURL}
lief alles wieder rund. (Die siteURL ist im Root Template unter constants definiert.)
Das Zertifikat besitzt eine Gültigkeit von 90 Tagen und kann jeweils nach 60 Tagen für weitere 90 Tage verlängert werden.
Zertifikat verlängern
Um die Zertifikate zu verlängern, begebe ich mich ins Verzeichnis ~/certbot. Dort lassen sich die Zertifikate mit einer der folgenden Zeilen erneuern:
sudo letsencrypt renew sudo certbot renew sudo ./letsencrypt-auto renew sudo ./certbot-auto renew sudo ./certbot-auto sudo ./letsencrypt-auto
Im Endeffekt bewirken alle Befehle eine Erneuerung des Zertifikats, bloß die Anzeige im Terminal ist unterschiedlich.
Bis auf die beiden letzten Befehle lassen sich die Zeilen zuvor testen, indem man den Zusatz –dry-run –agree-tos an das Kommando anhängt. Zum Beispiel:
sudo letsencrypt renew --dry-run --agree-tos
Certbot per PPA installieren
If you run Ubuntu Trusty, Xenial, or Bionic, certbot is available through the official PPA, that can be installed as followed:
sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository universe sudo add-apt-repository ppa:certbot/certbot sudo apt-get update
Then, certbot can be installed using:
sudo apt-get install certbot
Optionally to install the Certbot Apache plugin, you can use:
sudo apt-get install python-certbot-apache
Auch nicht schlecht zu wissen:
https://community.letsencrypt.org/t/certbot-auto-deployment-best-practices/91979
Sei der Erste, der kommentiert!