Lets encrypt! im Shared Hosting (z.B. bei All-Inkl): Gratis-SSL nicht nur für Server-Besitzer

Nachtrag vom 27. Juni 2016: hier ein aktuelles Video-HowTo – die auf das Video folgende Beschreibung dürfte nur noch für Shared-Hosting-Angbote, die weder KASserver-basiert sind noch Let’s Encrypt anbieten, von Nutzen sein. Die Diskussion unten spiegelt die seinerzeit ungewisse Umstellungsphase auf Let’s Encrypt bei All-Inkl in den ersten Monaten des Jahres 2016 wider.

SSL-Gratis-Zertifikat von Let's Encrypt auf dem KASserver aktivieren

Nachtrag – Ende

Seit Anfang Dez. 2015 läuft die öffentliche BETA: https://letsencrypt.org/

Endlich können wir uns selber ein in allen üblichen Browsern gültiges SSL-Zertifikat erstellen, das wir sonst umständlich kaufen mussten. Aller E-Mail-Verkehr zur Domain-Validierung entfällt dabei! Führe einfach die Schritte unten nacheinander aus.

Folgende Kurzanleitung zur Erstellung eines SSL-Zertifikats setzt lokal ein Linux-(ähnliches) Betriebssystem voraus. Wer das nicht hat, kann bei dieser Gelegenheit leicht einmal eines ausprobieren. Einfach ein Image, z.B. von Ubuntu gratis herunterladen, auf USB bringen bzw. auf DVD brennen und PC/Laptop anschließend mit dem Linux-Live-System booten. Das Live-System fasst übrigens die Festplatte nicht an, solange Du nicht explizit installierst. Desweiteren wird das Versionierungssystem Git vorausgesetzt. Hast Du ein Ubuntu, Linux Mint oder Debian gestartet, installierst Du (auch auf einem Live-System) Git nach Start eines Terminals wie folgt mit einem einzigen Befehl:

sudo apt-get install git

1.) „Lets encrypt!“-Installation also auf unserem lokalen Linux-Client; im Terminal:

cd
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto

2.) Zertifikat für’s Shared Hosting auf eigenem Rechner erstellen

./letsencrypt-auto certonly --manual

Zunächst wird eine Admin-Mailadresse abgefragt, an die dann bei Ablauf der nur 90 Tage gültigen Domain-Zertifikate später auch Update-Notifications gesendet werden. Dann wird nach der Domain gefragt, da geben wir ein, z.B.:

hostz.de www.hostz.de

Für jeweils die Domain mit und ohne Subdomain „www“ wird jetzt eine Verifizierung durchgeführt (haben wir wirklich Zugang zum Server?) – da steht dann z.B.:

Make sure your web server displays the following content at
http://www.hostz.de/.well-known/acme-challenge/Srlc90i6NhJYBoMuvpBx8PIw7Fe0D4Pm7dxkxb_ctGU before continuing:

Srlc90i6NhJYBoMuvpBx8PIw7Fe0D4Pm7dxkxb_ctGU.xbyJ3Tl7o_V9Xxul2PrwKrbZ6_1FXHW-vSuUwBYkdSA

… und wartet auf ein RETURN von uns, das wir erst ausführen sollten, wenn wir tatsächlich im geforderten Webordner (den wir anlegen müssen!) die Datei namens „Srlc90i6NhJYBoMuvpBx8PIw7Fe0D4Pm7dxkxb_ctGU“ mit dem geforderten Textinhalt: „Srlc90i6NhJYBoMuvpBx8PIw7Fe0D4Pm7dxkxb_ctGU.xbyJ3Tl7o_V9Xxul2PrwKrbZ6_1FXHW-vSuUwBYkdSA“ erstellt haben. Das Prozedere wird dann für die zweite (Sub-)Domain www wiederholt – wir erstellen also zwei Dateien im Ordner DOCUMENT_ROOT/.well-known/acme-challenge/.

Perfekt. Jetzt können wir die PEM-Dateien ernten, sie liegen im Ordner:
/etc/letsencrypt/live/DOMAIN:

machine$: sudo ls -la /etc/letsencrypt/live/hostz.de/
lrwxrwxrwx 1 root root   32 Dez  3 23:49 cert.pem -> ../../archive/hostz.de/cert1.pem
lrwxrwxrwx 1 root root   33 Dez  3 23:49 chain.pem -> ../../archive/hostz.de/chain1.pem
lrwxrwxrwx 1 root root   37 Dez  3 23:49 fullchain.pem -> ../../archive/hostz.de/fullchain1.pem
lrwxrwxrwx 1 root root   35 Dez  3 23:49 privkey.pem -> ../../archive/hostz.de/privkey1.pem

3.) Zertifikate auf den Server kopieren

Der Inhalt der Dateien kann dann wie folgt bei All-Inkl auf dem KASServer in die Domain-Konfiguration hinüberkopiert werden:
letsencrypt-all-inkl
Fertig!

4.) Qualitätstest

Unter https://www.ssllabs.com/ssltest/ können wir dann noch testen, ob generell alles OK ist (bzw., wenn gewünscht, auch alles genauer inspizieren):
ssllabs

EDIT (23.12.): Gemäß Hinweis von Fabian (s.u.) ließe sich ein A+ für noch mehr Verschlüsselungssicherheit via SSL bei den ssllabs durch die Aktivierung der HSTS erreichen. Damit würde dann zugleich die Erreichbarkeit via HTTP unterbunden. Insofern kann man so eine Konfiguration serverseitig im Shared Hosting nicht erwarten; das Feature ist aber für alle, die dies wollen, leicht über die Datei .htaccess zu realisieren:

Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
Hat alles geklappt bei Dir? War das Tutorial hilfreich?
Ich freue mich über einen Satz von Dir in den Kommentaren!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.