In wenigen Schritten zum eigenen kostenlosen SSL-Zertifikat - Einrichtung am Beispiel vom Apache 2.x

  • Alle Jahre wieder erneure ich mein SSL-Zertifikat und habe mich heute dazu entschieden ein kleines Tutorial zu schreiben.

    Abhängigkeiten:
    - Eigene Top-Level-Domain (TLD)
    - Dedizierte IP-Adresse für die TLD
    - Zugriff auf den eigenen E-Mail-Server

    Zunächst gilt es einen Anbieter zu finden. In der Regel kostet die Zertifizierung einen jährlichen Obulus, beim Anbieter StartSSL erhält man dagegen sogar ein kostenloses SSL-Zertifikat. Dieses gilt es dann aber jedes Jahr wieder zu erneuern. Letzterem Szenario ist mein Tutorial gewidmet.

    Hintergrund:
    Ein TLD-Zertifikat besteht grundlegend auf unserer Seite aus drei Teilen, dem privaten Schlüssel (Key), de Zertifikats-Request (CSR) und dem Zertifikat (CRT). Weitergehende Details erspare ich mir hier und verweise auf die allseits beliebte Wikipedia ;)

    Vorgehensweise:

    1. ) Zunächst erfolgt die Anmeldung bei StartSSL mit einem unterstützen Internet-Browser (Firefox oder MS-Internet Explorer) und der Aufruf des "Control Panels". Aus dem "Control Panel§ heraus können alle möglichen Dienste des Unternehmens abgerufen werden.

    2. ) Nun zum ersten praktischen Schritt, der "Domain Name Validation": Nach der Anmeldung muss die eigene Domain authentifiziert (d.h. gehört sie wirklich euch?) werden. Dies erfolgt mittels eines Assistenten und einer abschließenden automatischen Prüfung, es wird eine E-Mail mit einem Validierungscode an eine der zur Auswahl stehenden Postmaster-E-Mail-Adressen (z.B. webmaster@meinedomain.de) versand, welche anschließend in der entsprechenden Eingabeaufforderung einzukopieren ist.




    3.) DIe TLD ist nun bestätigt und hinterlegt.

    4.) Nun starten wir den ersten Schritt der Zertifikatsbeschaffung mittels des "Certificates Wizard" und wählen ein "Web Server SSL/LS Certificate" als Ziel aus.



    5. ) Im nächsten Schritt vergeben wir ein Passwort für den privaten Schlüssel (mit diesem wird der Schlüssel anschließend maskiert) und legen die Verschlüsselungsstärke fest.



    6.) Anschließend erhalten wir den maskierten Schlüssel als Textausgabe und kopieren es vollständig in eine Datei namens [tld].crypt.key.

    7.) Nun wird mit diesem Schlüssel das Zertifikat erzeugt. Den Zertifikats-Request (CSR) bekommen wir in diesem Fall nicht zu sehen, da dies vom Anbieter intern durchgereicht wird. Dieser ist auch für die weitere Vorgehensweise nicht erforderlich. Das Zertifikat erhalten wir ebenfalls als Textausgabe und kopieren es vollständig in eine Datei namens [tld].crt

    Hinweis für kostenpflichtige (Wildcard) Zertifikate
    : Mit diesem Zertifikat kann man alle Subdomains einer Top-Level-Domain abdecken, d.h. bei der Zertifikatserstellung muss man nicht alle Subdomains im Vorfeld eintragen bzw. das Zertifikat widerrufen, falls eine Subdomain vergessen wurde. Um ein Wildcard-Zertifikat über STartSSL erzeugen zu können, ist zuvor eine persönliche Class 2 - Validierung der eigenen Identität erforderlich. Bei der Eingabe der Subdomain wird einfach ein (*) ohne die () eingetragen. Fertig. :banana:

    8.) Dieses Schritt ist optional: Entschlüsselung des privaten Schlüssels für die Nutzung im Apache 2. Kopieren des vollständigen Inhalts der Datei [tld].crypt.key in den Dialog im StartSSL Control Panel und Eingabe des vergebenen Passworts.



    9.) Der Schlüssel wird nun entmaskiert und vollständig in eine Datei namens [tld].key kopiert.

    10.) Auf dem Web Server werden die Dateien [tld].key und [tld].crt hinterlegt und in die Konfiguration (z.B. vhosts) eingebunden:

    SSLCertificateFile /etc/beispielspeicherort/[tdl].crt
    SSLCertificateKeyFile /etc/beispielspeicherort/[tdl].key

    11.) In diesem Beispiel sollten auch die sog. Root-Zertifikate des Zertifikats-Anbieters auf dem Server hinterlegt werden. Diese erhält man auch via "Control Panel" und kann diese in einer Datei ablegen, welche ebenfalls in der oben genannten Apache Konfiguration hinterlegt werden muss:



    SSLCertificateChainFile /etc/beispielspeicherort/startssl.chain.crt

    Hinweis:
    Wird dies nicht gemacht, kann das eigene Zertifikat trotz korrekter Vorgehensweise im Browser als nicht vertrauenswürdig angzeigt werden.

    So, ich hoffe ich habe jetzt nichts vergessen. Ansonsten freue ich mich natürlich über einen dezenten Hinweis. :thumbup:

    11,659 times read

Comments 2

  • User Avatar

    Christian Rachny -

    Hallo Daniel,

    in meinem Beispiel werden die Files in einem eingeschränkt zugänglichen Verzeichnis (das könnte /etc/certs/ sein) abgelegt.

    Der Webserver-Dienst ist hierbei ein Apache 2.x mit einer entsprechenden Vhost-Konfiguration. Hierfür gibt es Beispiel-Konfigs auf der Http-Apache-Website für SSL. In diese werden die Pfade zu den beiden genannten Dateien reingeschrieben.

    Anschließend den Apache-Dienst neu starten.

  • User Avatar

    daniel -

    Hallo,
    wie / wo auf dem Server muss man die beiden Files hinterlegen und wie werden diese eingebunden?

    Danke für einen kurze Erklärung.

    "
    10.) Auf dem Web Server werden die Dateien [tld].key und [tld].crt hinterlegt und in die Konfiguration (z.B. vhosts) eingebunden:

    SSLCertificateFile /etc/beispielspeicherort/[tdl].crt
    SSLCertificateKeyFile /etc/beispielspeicherort/[tdl].key
    "