Let’s Encrypt Zertifikat manuell erstellen

So diese Woche war es soweit. Nachdem mein Webspace lange lange Zeit auf einem alten DOMAINbox System geschlummert hat, hat diese Woche Host Europe Nägel mit Köpfen gemacht und meinen bestehenden Webspace umgezogen auf eine neue technische Plattform. Ich hatte einige Sachen danach zu reparieren ähhh anzupassen. In dem Zuge habe ich mir auch das “KIS” angeschaut, was deren Administrationssystem ist. Soviel Luxus war ich ja gar nicht gewöhnt. Dort habe ich dann eine Möglichkeit gefunden SSL Zertifikate zu hinterlegen. Natürlich könnte ich auch eins kaufen, jedoch habe ich von Let’s Encrypt, wo es kostenlose Zertifikate geben soll, gehört. Da ich dieses Projekt spannend fand habe ich mich dazu entschlossen dies einfach mal auszuprobieren.

Basis dieses Projektes ist der sogenannte Certbot, er soll über das ACME-Protokoll die Erstellung der Zertifikate automatisieren. Hierfür legt der Certbot auf Anfrage kryptische Daten mit kryptischem Inhalt an und der Server prüft, ob es diese Dateien und dessen Inhalt gibt, damit er sich sicher sein kann, dass wir wirklich Zugriff auf diese Domains haben.

Da ich nur ein einfaches Webhosting-Paket habe kann ich diesen Certbot nicht wie vorgesehen auf meinem Webserver installieren. Also muss Trick 17 her. Dieser Trick besteht darin, dass ich den Certbot auch auf meinem MacBook unter MacOS Sierra ausführen kann. Das Anlegen der Dateien muss ich dann bloß selber bewerkstelligen. Da ich irgendwie hierfür aber keine wirkliche Dokumentation und Tipps gefunden habe, musste ich das nun selbst austüfteln. Damit ihr das nicht auch noch austüfteln müsst folgt hier nun eine kleine Anleitung des Vorgangs.

Als Erstes muss sichergestellt werden, dass Xcode installiert ist. Wenn dies nicht der Fall ist, dann installiert Xcode vom App Store (Hier klicken). Nachdem dann Xcode installiert ist muss noch die Lizenzvereinbarung akzeptiert werden. Dies kann man machen indem man das Xcode startet oder mit folgendem Kommando in einem Terminal:

sudo xcodebuild -license accept

Für MacOS wurde der Certbot via Homebrew paketiert. Daher müssen wir zunächst Homebrew installieren. Dies erfolgt mit diesem Kommando:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Danach kann dann der Certbot für Let’s Encrypt installiert werden:

brew install certbot

So nun ist das Vorgeplänkel vorbei. Die nötige Software ist auf meinem MacOS und wir können loslegen, die Zertifikate zu generieren. Hier können und müssen wir mehrere Parameter angeben. Dieses Zertifikat wird für mehrere Domains erstellt. Mit dem Parameter “-d” gebe ich an für welche Domains ich ein Zertifikat erstellen möchte. Dieser und folgende Schritte sollten auch auf anderen unterstützten Plattformen genutzt werden können.

sudo certbot certonly --manual -d horstmann.in -d www.horstmann.in --manual-public-ip-logging-ok

Performing the following challenges:
http-01 challenge for horstmann.in
http-01 challenge for www.horstmann.in
——————————————————————————-

Für jede Domain, die ich angegeben habe, zeigt er mir nun an welche Datei ich mit welchem Inhalt anlegen soll. Ich habe mich via Forklift mit meinem FTP verbunden und habe dann damit die Datei angelegt und den Inhalt reinkopiert.

Make sure your web server displays the following content at
https://horstmann.in/.well-known/acme-challenge/Fzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0 before continuing:
FzfxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxU
Press Enter to Continue 

Wenn das erledigt ist, muss man “Enter” drücken. Danach kommt diese Aufforderung nochmal so oft, wie ich Domains angegeben habe. Nun überprüft er die Domains und stellt dann, wenn ihr alles richtig gemacht habt, das Zertifikat aus.

Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/horstmann.in/fullchain.pem. Your cert will
   expire on 2017-04-28. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"
 - If you like Certbot, please consider supporting our work by:
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

So nun liegen die Zertifikate in dem /etc/letsencrypt Ordner. Der ist mit einem normalen Benutzer nicht zu öffnen. Ich habe mir die Dateien mit sudo und chown zugreifbar gemacht.

sudo cp -r /etc/letsencrypt/ /Users/marco/Documents/sslcert
cd /Users/marco/Documents/sslcert
sudo chown marco *

So nun müssen wir noch bei Host Europe das Zertifikat hinterlegen. Hierfür gehen wir ins KIS und hinterlegen im Webhosting-Paket unter “Sicherheit & SSL > SSL administrieren” für die Domain nun die Zertifikate. Als Zertifikat wähle ich die “live/horstmann.in/fullchain.pem” aus, die das Serverzertifikat beinhaltet. Als Key wähle ich die Datei “live/horstmann.in/privkey.pem” aus, da dies der Server für die Verschlüsselung benötigt. Passwort und CA sind optional, jedoch hatte ich bei der CA noch das Intermediate Certificate hinterlegt. Dies habe ich nur sicherheitshalber gemacht.