SSL-Zertifikate

SSL-Zertifikate bestätigen die Echtheit Ihrer Internetseite. So könnten Sie z. B. auch Ihre Kreditkartennummer auf Ihre Seite stellen. Dann könnte ein Händler mit entsprechendem Zugang die Echtheit Ihrer Internetseite überprüfen. Dies ist natürlich in mehrfacher Hinsicht nicht praktikabel. Vor allem sollten Sie Ihre vertraulichen Daten, wie die Kreditkartennummer niemals veröffentlichen! So entsteht die Notwendigkeit "vertrauenswürdiger Dritter", welche die Identität Ihrer Person oder Ihres Geschäfts bestätigen können. Dies geschieht mit SSL-Zertifikaten.

Authoritäten

"vertrauenswürdige Dritte" sind Stellen, welche Ihrem Browser bekannt sind. Sie können eine Liste mit diesen Authoritäten über Ihren Browser anzeigen.

Zertifizierungsstellen in Firefox.

Schlüssel

Um ein Zertifikat beantragen zu können, brauchen Sie einen Schlüssel, der bestätigt werden kann. Im Folgenden beschreibe ich die Schlüsselgeneration mit OpenSSL. Bei Bedarf müssen Sie dieses erst installieren.

Den Schlüssel erzeugen Sie dann auf einer Linux-Konsole mit

openssl genrsa -des3 -out domainname.key 1024

Nun hat der erzeugte Schlüssel ein Passwort. Das bedeutet, dass Sie jedesmal, wenn der SSL-Server neu startet ein Password angeben müssen. Einen Schlüssel ohne Passwort erzeugen Sie mit dem Kommando

openssl genrsa -out domainname.key 1024

Die Anfrage stellen

Mit diesem Schlüssel können Sie jetzt bei einer Authentifizierungs-Stelle einen Antrag auf ein Zertifikat stellen. Hierzu erzeugen Sie eine Zertifikatsanfrage:

openssl req -new -key domainname.key -out domainname.csr

Es werden Ihnen nun eine Reihe von Fragen gestellt. Zur Erklärung:

  • Country Name - Der zweistellige Länderkode. Also z.B. DE für Deutschland.
  • State or Province - Bundesstaat. z.B. BW.
  • Locality Name - Ihre Stadt. z.B. Ludwigsburg.
  • Organization - Der exakte Name Ihrer Firma. Verwenden Sie keine Abkürzungen.
  • Organization Unit - Die Organistationseinheit für die das Zertifikat ausgestellt wird. z.B. Marketing.
  • Common Name - Der Domänenname, für den das Zertifikat gültig sein soll. Also z.B. ssl-factory.de.

Sie werden dann noch nach einem sogenannten Challange Password gefragt. Hier müssen Sie sich bei der Zertifizierungstelle informieren. Meistens wird es leer gelassen.

Überprüfen Sie die Inhalte Ihres Zertifikatantrags mit:

openssl req -noout -text -in domainname.csr

Machen Sie dringend ein Backup von Ihrem Schlüssel und bewahren es an einem sicheren Ort auf.

Überprüfen Sie die Inhalte Ihres Schlüssels mit:

openssl rsa -noout -text -in domainname.key

Das Zertifikat installieren

Sobald Ihr Zertifkat beglaubigt wurde, bekommen Sie es zugeschickt. Sie erhalten eine Datei mit der Endung .crt.

Sie können den Inhalt dieser Datei mit dem folgenden Komando überprüfen:

openssl x509 -noout -text -in server.crt

Kopieren Sie diese Datei in den Order, in dem Sie in Zukunft Ihre Zertifikate speichern wollen. Suchen Sie nun den VirtualHost, für den dieses SSL-Zertifikat bestimmt ist in Ihrer Apache-Konfiguration. Fügen Sie folgende Zeilen ein:

SSLCertificateFile /usr/local/apache/conf/ssl.crt/domainname.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/domainname.key

Passt Schlüssel und Zertifikat

Überprüfen Sie, ob der Schlüssel zu Ihrem Zertifikat passt mit folgendem Kommando:

openssl x509 -noout -modulus -in server.crt | openssl md5
openssl rsa -noout -modulus -in server.key | openssl md5

Sind die beiden ausgegebenen md5-Summen nicht identisch, passt Ihr Zertifikat nicht zu dem Schlüssel.

Micha, 4 Dez 2005