Vor ein paar Tagen hatte ich diesen Artikel geschrieben und mich wie ein Schneekönig gefreut, dass ich letsencrypt ohne Root-Rechte auf meinem Uberspace nutzen kann. Dass die Ubernauten so schnell mit ihrer Adaption von Let’s Encrypt sein werden hatte ich nicht gedacht.


Update 2015-12-09: Let’s Encrypt lässt sich jetzt noch einfacher nutzen - einfach und allein über die Shell eures Überspaces. Wie das jetzt genau funktioniert kann man im Ubernauten-Blog nachlesen: https://blog.uberspace.de/lets-encrypt-rollt-an/


Der ursprüngliche Artikel

Vor einiger Zeit habe ich mich bei der Beta von letsencrypt.org angemeldet. Nach einiger Zeit wurde meine Anmeldung akzeptiert und ich konnte loslegen. Nun ja, theoretisch. Praktisch war ich noch etwas zögerlich, da Let’s Encrypt ja eigentlich als Root auf dem Webserver läuft und alles automatisch einrichtet. Ohne einen eigenen Server kann das nicht funktionieren. Dachte ich, doch das ist nicht zwingend notwendig. Die Einrichtung kann auch genauso gut manuell erfolgen, was damit den Einsatz auf einem Host z.B. von uberspace.de möglich macht.

Wie man das macht habe ich hier im folgenden beschrieben.

HTTPS für www.stelim.de

Zuerst benötigt man das Tool von Let’s Encrypt, was man sich mit

git clone https://github.com/letsencrypt/letsencrypt

einfach downloaden kann.

Nun muss man das Script mit --manual und certonly starten.

./letsencrypt-auto  certonly --manual --text -m <eure E-Mail-Adresse> -d <eure domain>

Danach bekommt ihr zur Validierung einen Pfad und Hashwert genannt, der unter eurer Domain aufrufbar sein muss.

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

v076DVX4EIUu8bS3SCZ-xV0D8

Öffnet in eurer Konsole einen neuen Tab, verbindet euch via SSH auf euren Uberspace. Legt dann in eurem html-root diesen Pfad an und erstellt die Datei (z.B. f0b4r42cdb) aus der genannten Adresse und fügt den angezeigten Hashwert ein.

cd html
mkdir -p .well-known/acme-challenge/
cd .well-known/acme-challenge
echo 'v076DVX4EIUu8bS3SCZ-xV0D8' > f0b4r42cdb

Danach wechselt ihr zurück in den Tab mit Let’s Encrypt und drückt die ENTER Taste.

Etwas warten und ihr findet eure Keys in /etc/letsencrypt/live/<domain>. Jetzt kopiert ihr die fullchain.pem und euren privaten Schlüsseln in euer Home auf Uberspace (nicht in euer html-Verzeichnis!) und ruft zum Schluss noch

uberspace-prepare-certificate -c fullchain.pem -k privkey.pem

auf.

Ist alles ok, seht ihr diese Ausgabe:

$ uberspace-prepare-certificate -c fullchain.pem -k privkey.pem
🔑  Found key...
📝  Found certificate...
🔑  Key seems valid, moving on...
📝  Certificate seems valid, moving on... (step by step)
🔐  Certificate matches key, moving on... (we're getting there!)
📜  Magically getting intermediate certificate(s) if there are any needed... (hold on tight)
🔐  Checking for www.stelim.de.
🌍  temporary webserver started...
✅  certificate is valid.
🌍  killed temporary webserver...
🚀  All good! Your new certificate will be live within the next five minutes.

Das Verzeichnis ~/html/.well-known könnt ihr spätestens jetzt entsorgen.

Jetzt einfach etwas warten und ihr könnt eure Webseite mit einem gültigen SSL-Zertifikat aufrufen. Vermutlich habe ich die Optionen übersehen, damit das Script ohne sudo arbeitet. Falls die jemand gefunden hat, schickt mir einfach einen Kommentar zu diesem Artikel via E-Mail an stefan@stelim.de.