Kostenloses SSL Zertifikat von StartSSL
Heute mal wieder etwas technisches. Und zwar geht es um die Einrichtung eines kostenlosen, verifizierten SSL-Zertifikats für den eigenen Rootserver. Der Anbieter StartSSL bietet seit einiger Zeit kostenlose Zertifikate an, die von den gängigen Browsern anerkannt werden und Besucher nicht durch Warnmeldungen abschrecken. Ich hatte ein solches Zertifikat bereits vor einem Jahr erfolgreich auf meinem Server eingerichtet, aber durch eine Unaufmerksamkeit bei der Erstellung meines Accounts konnte ich dieses Zertifikat jetzt nicht verlängern. Also ein guter Anlass, um die nötigen Schritte zur Erstellung eines SSL-Zertifikats für meine Domain hier im Blog zu dokumentieren.
Zuerst gilt es einen Account bei StartSSL anzulegen. Dazu eignet sich am besten die “Express Lane”. Die Daten sollten wahrheitsgemäß angegeben werden, da Falschangaben zur Sperrung der Zertifikate führen können. Die Angaben müssen über einen Authentication Code, den man per E-Mail erhält, bestätigt werden. Danach hat man auch schon Zugriff auf das Control-Panel, um Zertifikate zu erstellen.
Also, gängige Anmeldepraxis… ausser, und jetzt kommt meine Unachtsamkeit bei der letzten Anmeldung, dass der Zugang ebenfalls über ein Zertifikat gesichert wird, welches automatisch zum Browser hinzugefügt wird. Wird dieses Zertifikat entfernt (Neuinstallation, anderer Browser ect.) hat man keinen Zugriff mehr auf seinen Account und seine Zertifikate. Also sichert euch am besten das Zertifikat gleich nach der Erstellung irgendwo ab. Im Firefox geht das über Preferences -> Advanced -> View Certificates -> Your Certificates -> Zertifikat auswählen -> Backup…
Als nächstes erstellen wir das public/private Schlüsselpaar über folgenden Befehl:
openssl genrsa -out udo-telaar.de.key 2048
aus der erstellten Datei generieren wir jetzt den CSR (Certificat Signing Request), also den Teil, den wir gleich zu StartSSL schicken, um ihn verifizieren zu lassen:
openssl req -new -key udo-telaar.de.key -out udo-telaar.de.csr
Die abgefragen Angaben kann man überspringen, da StartSSL diese ohnehin ignoriert. Nachdem wir die beiden Dateien erstellt haben, geht es wieder zu StartSSL zurück um das eigentliche SSL-Zertifikat zu erstellen. Im ersten Schritt gilt es die Domain einzugeben, für die das Zertifikat erstellt werden soll.

Als nächstes muss eine der drei möglichen E-Mail Adressen postmaster@, hostmaster@ oder webmaster@ ausgewählt werden, an die dann die Verification E-Mail gesendet wird. Ihr müsst also Zugriff, auf eine dieser drei Adressen haben.

Der Verification Code wird per E-Mail an die ausgewählte Adresse gesendet und muss im nächsten Schritt eingegeben werden. Nachdem ihr das erfolgreich gemacht habt, seid ihr für 30 Tage für die Domain verifiziert.
Den nächsten Schritt können wir skippen, da wir unser Schlüsselpaar bereits lokal erzeugt haben und direkt zur Eingabe des CSR springen. Hier copy&pasten wir jetzt den Inhalt aus der .csr Datei.

Nach einer Bestätigung, dass der Request gesendet wurde, kann man auswählen für welche Domain das Zertifikat gelten soll. Zur Auswahl stehen alle Domains, die während der letzten 30 Tage validiert wurden.

Im nächsten Schritt noch www (oder eine andere Subdomain) eintragen und nach einer Übersichtsseite folgt dann endlich die Ausgabe des fertig generierten Zertifikats. Dieses wird jetzt per copy&paste in die Datei udo-telaar.de.crt geschrieben.
Soweit, so gut. Jetzt brauchen wir das Zertifikat nur noch im VHost eintragen. Relevant sind die beiden Dateien udo-telaar.de.crt und udo-telaar.de.key die ich im conf Ordner meines Webusers speichere. Zudem sollte man noch das Intermediate-Zertifkat in der Datei sub.class1.server.ca.pem vom StartSSL-Server in sein /etc/ssl/certs Verzeichnis ablegen und ausliefern, damit auch alle Browser unser Zertifikat auf die vertrauenswürdige Instanz StartSSL zurückführen können.
Mein (vereinfachter) VHost Eintrag sieht so aus:
<VirtualHost *:443>
ServerName www.udo-telaar.de
SSLEngine On
SSLCipherSuite HIGH:MEDIUM
SSLCertificateFile /webuser/conf/ssl/udo-telaar.de.crt
SSLCertificateKeyFile /webuser/conf/ssl/udo-telaar.de.key
SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
</VirtualHost>
Wenn alles geklappt hat, sollte der Aufruf https://www.udo-telaar.de jetzt problemlos möglich sein.
