Kostenloses SSL Zertifikat bei StartCom StartSSL erstellen

19 Mrz
19. März 2014

SSL, inzwischen eigentlich auf den Namen TLS (Transport Layer Security; dt. Transportschichtsicherheit) hörend, ist eine gängige Methode im Internet Datenübertragungen abzusichern. Wie in meinem Blog in verschiedenen Tutorials bereits erklärt, benötigt man ein SSL Zertifikat, das die Verbindung sichert. Man kann sich dieses selbst erstellen und signieren. Das ist kostenlos und schnell erledigt. Der Nachteil an dieser Methode ist, dass Browser und andere Clients immer fragen, ob man dem Zertifikat wirklich vertrauen möchte, da man bei selbst signierten Zertifikaten nicht zwingend von dessen Echtheit ausgehen kann.

Alternativ kann man sich SSL Zertifikate von Unternehmen ausstellen lassen, denen von Betriebssystemen, Browsern und weiteren Clients vertraut wird. Dabei sind Zertifikataussteller wie Thawte, RapidSSL, GEO Trust, GlobeSSL, Comodo oder VeriSign anzuführen. Ab zehn Euro bis hin zu mehreren Tausenden pro Jahr ist das Spektrum der Angebote bei den benannten Anbietern groß.

Beispiel: Selbst signiertes SSL Zertifikat erstellen

Mit den folgenden Befehlen können wir auf einem Rechner mit OpenSSL ein selbst signiertes SSL Zertifikat erstellen, das 365 Tage gültig ist. Der Ausdruck hostname sollte durch die Domain ersetzt werden, für die das Zertifikat bestimmt ist. Dabei werden beim vorletzten Befehl mehrere Fragen gestellt. Minimal sollten wir bei Country Name unser Länderkürzel z.B. DE und bei Common Name die Domain, unter der das SSL Zertifikat verwendet wird, angeben. Weitere Angaben schaden an dieser Stelle nicht.

openssl genrsa -out hostname.key 4096
openssl req -new -sha256 -key hostname.key -out hostname.csr
openssl x509 -req -sha256 -days 365 -in hostname.csr -signkey hostname.key -out hostname.crt

Wer nach einer kostenlosen Alternative sucht, die jedoch ohne Nachfrage des Clients akzeptiert wird, sollte einen Blick auf StartSSL werfen. Diese bieten mit StartCom StartSSL Free ein SSL Zertifikat für ein Jahr an, das gänzlich kostenlos ist. Wie man im Vergleich zu anderen StartSSL Produkten sieht, bietet es einige Funktionalitäten nicht an. Jedoch akzeptieren die meisten (modernen) Anwendungen das Zertifikat, wie dem Forum des Unternehmens zu entnehmen ist. Für eine Domain auf einem Webserver wie Apache2 oder Nginx oder E-Mail-Verschlüsselung ist es also völlig ausreichend.

Kostenloses SSL Zertifikat bei StartSSL erstellen

Step 1

Zunächst müssen wir uns auf der etwas unübersichtlichen Webseite von StartSSL einen Account anlegen. Dies können wir im Control Panel über den Button Sign-up bewerkstelligen. Anschließend müssen wir unsere Adresse, Telefonnummer und E-Mail Adresse angeben.

Step 2

Nach der Anmeldung erhalten wir per E-Mail einen Code, den wir auf der Seite nach Absenden der Registrierung angeben müssen, um diese abzuschließen. Anschließend werden die angegebenen Adressdaten von einem Mitarbeiter geprüft. Das kann je nach Tageszeit einige Stunden dauern. Wenn die Prüfung abgeschlossen ist und die Daten angenommen wurden, erhält man eine zweite E-Mail mit einem Aktivierungslink, auf den wir klicken müssen und in diesen einen weiteren Code, der in der E-Mail enthalten ist, eingeben.

Step 3

Nun müssen wir im nächsten Schritt Generate Private Key ein Zertifikat generieren, mit dem sich der Browser bei StartSSL in den angelegten Account anmelden kann. Die Voreinstellung 2048-bit ist in Ordnung, sodass wir mit einem Klick auf Continue fortfahren und anschließend das Zertifikat installieren lassen können.

Step 4

Nachdem wir die Registrierung nun geschafft haben, können wir im Control Panel von StartSSL auf den Reiter Validations Wizard gehen. Dort wählen wir Domain Name Validation und geben im nächsten Schritt die Domain an, für die wir ein SSL Zertifikat erstellen möchten. Im dritten Schritt müssen wir wählen, an welche der drei standard E-Mail Adressen ein Verifikationscode geschickt werden soll. Nachdem wir den Code per E-Mail erhalten haben, müssen wir diesen im letzten Schritt auf der Webseite von StartSSL eintragen.

Dies ist nötig, da StartSSL überprüfen muss, ob die Domain, für die wir später ein SSL Zertifikat erstellen, auch wirklich uns gehört.

Step 5

Das Account angelegt und die Domain verifiziert. Nun sind alle vorbereitenden Schritte geschafft und wir können zum Erzeugen eines SSL Zertifikats übergehen. Dazu wählen wir den Reiter Certificates Wizard an und wählen dort die Art des SSL Zertifikats, das wir ausstellen lassen möchten. Im Folgenden werden die Schritte exemplarisch für ein Web Server SSL/TLS Certificate erklärt, das wir für einen Webserver wie Apache2 oder Nginx benötigen.

Step 6

Zunächst müssen wir nun einen Private Key erzeugen. Jedoch ist der Private Key ein wichtiger Schlüssel, der nicht herausgegeben werden sollte, weshalb wir diesen nicht auf der Webseite, sondern selbst erzeugen sollten. Wir erzeugen den Private Key mit einer Länge von 4096 Bit mittels folgenden Befehls auf einem Rechner, der OpenSSL installiert hat. Anschließend, mit dem zweiten Befehl, erzeugen wir einen Certificate Request, der die nötigen Informationen für das Zertifikat enthält. Dabei sollten wir die gestellten Fragen wahrheitsgemäß beantworten. Bei Common Name ist dabei die Domain anzugeben, für die das Zertifikat erstellt werden soll und ein Passwort sollte nicht vergeben werden. Der Ausdruck hostname sollte dabei durch die Domain, für die wir das Zertifikat erstellen, ersetzt werden.

openssl genrsa -out hostname.key 4096
openssl req -new -sha256 -key hostname.key -out hostname.csr

Auf der Webseite von StartSSL klicken wir auf Skip und werden anschließend aufgefordert den Certificate Request einzutragen. Dazu kopieren wir einfach den Inhalt der hostname.csr in das angegebene Feld.

Step 7

Im nächsten Schritt müssen wir nun eine der zuvor verifizierten Domains auswählen, für die wir ein SSL Zertifikat erstellen möchten. Wir müssen nun noch eine Subdomain angeben, die ebenfalls von dem Zertifikat unterstützt werden soll. Im Normalfall sollte man an dieser Stelle www angeben, falls das Zertifikat nicht für eine spezifische Subdomain ausgestellt werden soll. Darauf folgend müssen wir unsere Angaben nochmals bestätigen. Ist das erledigt, so erhalten wir erneut im Browser die Meldung, dass das Zertifikat beantragt wurde und wir per E-Mail benachrichtigt werden, wenn dieses ausgestellt ist.

Step 8

Haben wir die E-Mail erhalten müssen wir im Control Panel unter Tool Box und anschließend Retrieve Certificate das kostenlose SSL Zertifikat abholen, das in einem Textfeld angezeigt wird. Dessen Inhalt legen wir in einer Datei namens hostname.crt ab (hostname sollte erneut ersetzt werden).

Step 9

Wir haben nun den Private Key und das SSL Zertifikat. Des Weiteren brauchen wir aber noch die ca.pem und sub.class1.server.ca.pem Datei von StartSSL, welche wir herunterladen können.

Download-Links

Was ist in welcher Datei enthalten?

  • hostname.key: Zertifikatschlüssel/Private Key
  • hostname.crt: SSL Zertifikat
  • ca.pem: Intermediate Zertifikat
  • sub.class1.server.ca.pem: Intermediate Zertifikat für die Subdomain
Step 10

Abschließend müssen wir nun das SSL Zertifikat in der gewünschten Anwendung einbauen. Wie das für Apache2 und Nginx geht, wird in den verlinkten Seiten von StartSSL erklärt. Außerdem findet sich im Blog von Kuketz IT-Security ein Artikel zum Thema Cipher-Suiten, der ratsam zu Lesen ist, um den Webserver sinnvoll für das SSL Zertifikat zu konfigurieren. Für andere Anwendungen findet man im Normalfall mit einer kurzen Suche entsprechende Anleitungen.

Geschafft! Das kostenlose SSL Zertifikat für eine Domain wurde für ein Jahr ausgestellt und ist einsatzbereit. Damit wünsche ich eine sichere Nutzung der eigenen Anwendung!

Dieser Artikel wurde am 04. Juni 2015 überarbeitet.

Dir hat der Artikel gefallen?
Teile ihn mit deinen Freunden!
27 Antworten
  1. daniel says:

    Super gemacht. Habe es vorher schon oft mit den englischen anleitungen versucht. Nun hats geklappt! Vielen dank.

    Antworten
  2. wvs says:

    Guten Tag & vielen Dank für die Erklärungen – ich hatte kürzlich bei meinem hoster nachgefragt und wegen der hohen Kosten Abstand genommen. Nun rückt das Projekt wieder auf der ‚to-do-Liste‘ nach oben….

    Antworten
  3. tatoosh says:

    Danke für den Artikel!

    Antworten
  4. sbaerlocher says:

    Gute Anleitung, wer noch eine Anleitung für die Konfiguration des Nginx mit SSL sucht kann meine Anleitung verwenden: https://sbaerlocher.ch/2014/02/einrichten-eines-ssl-zertifikat/

    Antworten
  5. Manu says:

    Eine Verständnisfrage:

    Was passiert wenn das eine Jahr rum ist? Wird das Zertifikat kostenplfichtig oder verfällt es oder muss es erneuert werden?

    Antworten
  6. Anton says:

    Ist es auch möglich sich ein kostenloses Zertifikat für ein Host von noip.com registrieren zu lassen?

    Antworten
  7. it-worker says:

    Ich habe das nun so eingerichtet wie beschrieben, hat wunderbar funktioniert. Nur ein Problem: Immer wenn ich nun Apache restarten will, muss ich das Zertifikat-Passwort eingeben. Bekommt man das irgendwie weg? Ist nämlich blöd, wenn die Maschine durch einen Firstlevel-Supporter im Rechenzentrum rebootet wird, der weder Zugriff auf die Shell hat noch das Passwort kennt.

    Antworten
    • Jan Karres says:

      Keine zusätzliche Passphrase verwenden? 😉

      Antworten
      • Christian says:

        Ich glaube das wurde in der Anleitung vergessen. Das erzeugte ssl.key File ist ja jetzt mit Password encrypted. Bei einem Apache Neustart müsstest du jedes mal das Passwort angeben.
        Du kannst aber über die StartSSL Toolbox – Decrypt Private Key – eine ssl.key Datei erstellen die nicht mit Passwort versehen ist. Also die ssl.key Datei wieder zurück wandeln.

        Antworten
  8. Martin Guth says:

    Hallo,

    ich betreibe zu Hause owncloud auf meinem raspberrypi. Diesen möchte ich nicht ins Internet bringen und höchstens über VPN Tunnel von unterwegs zugreifen. Nun beschweren sich die Browser und Apps ständig über mein selbstsigniertes SSL-Zertifikat…es wird auch vor Man in The Middle Attacken gewarnt. Gibt es eine Chance ein offizielles Zertifikat für eine private IP-Addresse zu bekommen oder bleibt mir hier nur das Selbstsignieren und der Versuch die Clients zur Akzeptanz des Zertifikats zu überreden?

    Vielen Dank im Voraus

    Martin Guth

    Antworten
    • Jan Karres says:

      Selbst signiertes Zertifikat, ein kostenloses Zertifikat von am einfachsten StartSSL oder eines kaufen (ab ca. 10€/Jahr). Diese Möglichkeiten gibt es.

      Antworten
    • Christian says:

      Bei den Browsern müsstest Du doch angeben können, dass sie dieses Zertifikat akzeptieren sollen; „Ausnahmeregel hinzufügen“ oder sowas in die Richtung!?

      Und für Android gibt es die App CADroid, die hilft, selbstsignierte Zertifikate zu importieren: http://cadroid.bitfire.at/

      Antworten
  9. Steffen says:

    Gibt es außer StarCom noch weitere SSL-Free-Zertifikat Hersteller?

    Antworten
  10. Christian says:

    Da ich ewig nach einer richtig guten Anleitung gesucht habe ein „wirkliches“ openSSL Zertifikat zu erstellen, möchte ich es für euch posten:

    SSL – fortgeschritten:
    http://pki-tutorial.readthedocs.org/en/latest/advanced/index.html

    Sicherheit SSL Zertifikat testen:
    https://www.ssllabs.com/ssltest/index.html

    Außerdem hier der Code um das eigene Zertifikat sicherer zu machen (einzufügen in die NGINX-Conf Datei):
    # SSLv3 deaktivieren, http://en.wikipedia.org/wiki/Secure_Sockets_Layer#SSL_3.0
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    # Schutz gegen Ausspaehung, http://www.kuketz-blog.de/nsa-abhoersichere-ssl-verschluesselung-fuer-apache-und-nginx/
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES256-GCM-SHA384:DHE-DSS-AES256-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:DHE-RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256:AES128:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK;
    ssl_prefer_server_ciphers on;

    Alle Angaben ohne Gewähr 🙂

    Antworten
  11. Stefan says:

    Hallo,

    ich würde gerne ein Mailzertifikat erzeugen und von StartCom signieren lassen. Leider bekomme ich immer die Meldung, daß diese Mailadresse schon validiert ist.

    Ich würde aber gerne, wie in Step 6 empfohlen, den privaten Schlüssel selbst erstellen und nur den Request an StartCom schicken. Wie macht man das für ein Mailzertifikat?

    Danke und Gruß

    Stefan

    Antworten
  12. Schroeffu says:

    Ahoi Jan & Leser
    Inzwischen gibt’s gar 3-Jahres-Zertifikate via WoSign mit Cross-Sign von Startssl. Die Erstellung ist noch einmal einfacher gestaltet als bei Startssl selbst. 🙂 https://schroeffu.ch/2015/09/kostenlose-ssl-zertifikate-mit-3-jahren-gueltigkeit-erstellen-lassen/

    Antworten
  13. Tobi says:

    Wie funktioniert das zusenden des Codes per email über die 3 email Adressen ? Muss ich da eine neue email Adresse erstellen lassen auf dem Namen ?

    Antworten

Trackbacks & Pingbacks

  1. […] eines selbst signieren, was Nachteile mit sich brachte, erhielt dieses mit vielen Restriktionen kostenlos bei StarCom oder musste sich ein solches für eine teils nicht unerhebliche Jahresgebühr bei einer […]

Antworten

Kommentar verfassen

JanKarres.de © 2007-2017