Kostenloses SSL Zertifikat für die Website

Es wird immer wichtiger seine Website SSL-verschlüsselt laufen zu lassen. (Eigentlich verwendet man inzwischen TLS, aber der Name SSL ist hängengeblieben). Leider braucht man dafür ein Zertifikat, d.h. ein “vertrauenswürdiger” Anbieter bestätigt einem, dass man wirklich der Anbieter der Domain ist. Hat man das nicht, bekommt der Nutzer eine ziemlich fette Warnmeldung. Bislang waren diese Zertifikate ziemlich teuer, aber mittlerweile gibt es gute kostenlose Alternativen.

Bezugsquellen

Let’s encrypt wird von meinem Hoster Uberspace auch sehr gut unterstützt. Bei meiner Suche nach einem Code-Signing Zertifikat für mein kleines Open Source Projekt bin ich auf StartSSL (StartCom) gestoßen und wollte die einfach mal ausprobieren. Ich bin in keiner Weise mit StartSSL verbunden, finde das Angebot aber interessant. Das Zertifikat ist wie das von Let’s Encrypt kostenlos, muss dafür aber nur alle 3 Jahre verlängert werden. Leider ist die Website etwas unübersichtlich, deshalb folgt eine ausführliche Erklärung:

Wie funktionierts

Um ein Zertifikat zu bekommen und installieren sind allgemein folgende Schritte nötig:

  1. Man erzeugt ein “Certificate-Request” und schickt das an die ausstellende Institution. Das erledigt man über ein Tool wie OpenSSL, oder das von StartSSL bereitgestellte Programm. In diesem Schritt wird auch ein “Private Key” erzeugt.
    1. Das Unternehmen prüft nun die Angaben zu Domain, Firma, Person (je nachdem wofür man das Zertifikat braucht).
    2. Bei Erfolg wird einem ein Zertifikat ausgestellt, leider gibts da diverse Formate, was verwirrend sein kann.
    3. Nun kann man SSL auf dem Webserver aktivieren. Der braucht dafür einerseits das Zertifikat, andererseits den zu Beginn erzeugten privaten Schlüssel.

Achtung: Der private Schlüssel sollte gut aufbewahrt werden. Er darf nicht in fremde Hände gelangen, sollte also nicht einfach in die Dropbox gelegt werden.

Account anlegen

Wichtig: Ich hatte unter Windows Probleme mit Chrome – mit IE ging es aber einwandfrei.

  1. Auf der Sign Up Seite von StartSSL einfach die E-Mail eingeben, man bekommt dann einen Code zugeschickt. Diesen dann dort eingeben.
    1. Es wird nun (verwirrenderweise) zuerst ein “Login-Zertifikat” erzeugt. Also mit OpenSSL oder dem StartCom Tool ein Request erzeugen und per copy & paste in die Seite von StartSSL einfügen. Für OpenSSL bekommt man den Kommandozeilen-Befehl praktischerweise vorgegeben.
    2. Mann bekommt nun ein erstes Zertifikat heruntergeladen. Man muss es im Browser installieren (einfach mit Doppelklick öffnen und alles mit “Ja” bestätigen) und kann sich dann ohne Passwort über das Login-Zertifikat dort einloggen um das eigentliche Zertifikat zu bekommen. Wenn das nicht klappt, am besten einen anderen Browser probieren.
    3. Der Sign-Up Prozess ist abgeschlossen, man kann sich nun über “Client Certificate Login” ohne Passwort einloggen

Zertifikat bestellen

  1. Auf der Login Seite über “Client Certificate Login” einloggen
  2. Man wird begrüßt mit “Welcome! Howdy Free User! Thank you for choosing StartSSL™ and StartPKI™!” Nun auf “FREE certificates for personal use and non-commercial use” klicken.Kostenloses SSL Zertifikat
  3. Nun gelangt man zum “Validation Wizard”. Über eine E-Mail an den Admin der Website, die man eingibt (z.B. webmaster@domain.com) erhält man nun einen Code. Darüber wird geprüft ob man wirklich der Domaininhaber ist. Die Seite fordert nun dazu auf den Code einzugeben.
  4. Über “Certificates Wizard” -> “Web Server SSL/TLS Certificate” zu “Please enter the full hostname for SSL certificate”. Hier nun alle Domains & Subdomains angeben, für die das Zertifikat gelten soll. z.B. www.tecklenburg.at, tecklenburg.at, mail.tecklenburg.at, etc.
  5. Nun muss man Nochmals ein “Certificate Request” + Private Key erzeugen .. Screenshot und per copy & paste hochladen. Dazu entweder im Texteditor öffnen oder im StartCom Tool auf “Copy” klicken.
  6. Nun endlich wird einem das ersehnte Zertifikat per download zur Verfügung gestellt.

Zertifikat installieren

Man bekommt das Zertifikat für alle gängigen Webserver und Systeme passend geliefert. Außerdem gibt es schöne Anleitungen dazu wie man diese installieren muss. In jedem Fall muss man jedoch das Zertifikat gemeinsam mit dem privaten Key auf den Server laden. Dabei eine verschlüsselte Verbindung wie z.B. SFTP oder FTPS (Ja, ist nicht das gleiche 🙂 verwenden. Sobald man dem Webserver mitgeteilt hat, wo Key und Zertifikat liegen, kann man die Website über HTTPS erreichen und alles ist toll 🙂 Bei Uberspace geht das ganz einfach über uberspace-add-certificate – aber jeder Hoster wird da seine eigene Methode haben – zur Not mal beim Support fragen.

Am Ende fehlt eigentlich nur noch den eingehenden HTTP-Verkehr auf HTTPS umzuleiten. Bei den meisten geht das über die .htaccess-Datei

Der ganze Prozess ist leider nicht wirklich übersichtlich, also falls ich Fehler gemacht habe oder etwas unverständlich ist, einfach eine kurze Mitteilung senden!

Kommentar verfassen