Arbeit mit OpenSSL - CSR und Private key

10.06.2016 | Petra Alm

Wie sind der Private key und der öffentliche Schlüssel zu erstellen? Im ersten Teil unserer Miniserie zeigen wir Ihnen, wie man die Paarschlüssel mithilfe des OpenSSL-Progamms richtig erstellen kann.

(15. 10. 2014) Im ersten Teil unserer Miniserie zeigen wir Ihnen, wie den Private Key und CSR-Request für das SSL-Zertifikat zu erstellen sind. Es handelt sich um eine der häufigsten Tätigkeiten und wenn ihr das SSL-Zertifikat beantragt, so wird die Vorgehensweise für Sie nützlich sein. OpenSSL stell sich vor

OpenSSL ist ein Programm für die Kommandozeile zum Beantragen, Erzeugen und Verwalten von Zertifikaten. Es stellt kryptographische Bibliotheken zur Verfügung, deren Funktionen die Webserver und andere Programme, welche mit der Verschlüsselung arbeiten, verwenden. Lassen Sie sich dadurch nicht überraschen oder abraten, dass das Programm keine graphische Schnittstelle anbietet. Bei der Arbeit mit ihm stellt ihr fest, dass es eher der Vorteil ist.

Installation von OpenSSL und seine Konfiguration

Das Programm OpenSSL ist meistens in der Installation der Unix- und Linux-Operationssystemen bereits mit eingeschlossen. Es genügt, das Programm mit dem Befehl openssl zu starten oder es zuerst zusätzlich zu installieren. Wenn Sie in Windows arbeiten, müssen Sie das OpenSSL in der bereits kompilierten Form herunterladen (oder den Quellcode kompilieren). Die Installationsdateien finden Sie auf Webseiten des Projektes: Win32 OpenSSL Installation, welches das Programm OpenSSL für Windows vorbereitet. Die aktuelle Version OpenSSL 1.0.1i wurde am 6. 8. 2014 veröffentlicht.

Fehler can’t open config file openssl.cnf

Sie werden wahrscheinlich nach der Installation und nach dem ersten Starten auf den Fehler "can’t open config file /usr/local/ssl/openssl.cnf" treffen. In dem Fall ist es nötig, im System Windows manuell die Variable OPENSSL_CONF einzustellen, welche auf die Platzierung der Konfigurationsdatei openssl.cfg verweisen wird. Dieser Fehler tritt auf, wenn die Kommandozeile nicht als Administrator geöffnet wurde bzw wenn das OpenSSL Programmverzeichnis sich in einem Pfad befindet, auf den der aktuelle Benutzer keine Schreibrechte hat.

Die Einstellung können Sie entweder durch die Einfügung der Variable mit dem Namen OPENSSL_CONF in Eigenschaften des Systems und dem Wert C:installationbinopenssl.cfg, oder mit diesem Befehl, der in die Befehlszeile eingegeben wird, durchführen:

set OPENSSL_CONF=c:[Pfad ins Verzeichnis OpenSSL]binopenssl.cfg

Erstellung des Privatschlüssels

Der Privatschlüssel ist Ihr Private key, der den Server nicht verlassen darf (deshalb empfehle ich nicht, den Privatschlüssel mithilfe der Webinstrumente zu erstellen, die Private keys werden per E-Mail gesendet). Er dient zur Entschlüsselung der mittels des Zertifikats verschlüsselten Daten, welcher als öffentlicher Schlüssel funktioniert. Der Privatschlüssel kann von einem unberechtigten Besitzer erworben werden und er könnte somit die durch Ihr Zertifikat verschlüsselten Daten entschlüsseln.

Die Erstellung des Privatschlüssels könnt ihr durch die Eingabe des Befehls ins Programm OpenSSL durchführen:

openssl genrsa -des3 -out klic-s-heslem.key 2048

Die Verwendung des Parameters -des3 wird den Privatschlüssel mithilfe eines Passworts schützen, und umgekehrt, wenn er ausgelassen wird, so wird der Privatschlüssel durch kein Passwort geschützt. Wenn der Privatschlüssel durch ein Passwort geschützt wird, wird es bei jeder Arbeit mit ihm nötig sein (Erstellung vom CSR, Start Apache), dieses Passwort einzugeben. Wir empfehlen, das Passwort zu verwenden, jedoch je nach dem Webserver und der Unterstützung dieser Funktion.

Der Parameter -out definiert den Output in die Datei und seine Benennung. Wir empfehlen, die Privatschlüssel als Dateien mit dem Suffix .KEY zu speichern, damit Sie sich im kryptographischen Material besser auskennen können. Für die Verwendung des Schlüssels ist das jedoch nicht wichtig, Sie können auch ein anderes Suffix verwenden.

Die Nummer 2048 bestimmt die Bit-Tiefe des Schlüssels. Eine niedrigere Bit-Tiefe als 2048 Bit wird nicht verwendet (Unterstützung der Schlüssel 1024b wurde schon beendet).

Erstellung der CSR-Datei

Die Zertifikatsanforderung (CSR request), also Ihr öffentlicher Schlüssel, wird aus Ihrem Privatschlüssel erstellt. Gebt ihr folgenden Befehl ins OpenSSL ein:

req -new -key klic-s-heslem.key -out nazev.csr

Der Parameter -key bestimmt den Namen der Datei mit dem Privatschlüssel und der Parameter -out den Namen des Outputs, also die Datei mit dem CSR request.

Anschließend werdet ihr vom Programm zur Eingabe der Daten für CSR request aufgefordert.

Country Name (2 letter code) [US]: Name des Landes mit großen Buchstaben nach der ISO-Norm, zum Beispiel CZ
State or Province Name (full name) []: Zum Beispiel Czech Republic
Locality Name (eg, city) []: Stadt, wo ihr den Sitz habt. Zum Beispiel Prag, Brünn
Organization Name (eg, company) []: Name der Organisation oder Person, welche das Zertifikat beantragt
Organizational Unit Name (eg, section) []: Name der Organisationseinheit oder Abteilung. Sie können hier zum Beispiel Internet, Software oder Marketing eingeben.
Common Name (eg, YOUR name) []: Die wichtigste Angabe - die Domain, für welche das Zertifikat ausgestellt wird. Man muss die Form der Domain (mit und ohne WWW) beachten.

Zum Beispiel www.sslmarket.de.

Email Adresse []: Die E-Mailadresse - wird nicht benötig

Es folgen noch zwei erweiternde Attribute, welche ihr nicht ausfüllen sollt (nur mit Enter bestätigen):

A challenge password []: Das Passwort, welches für die Revozierung verwendet wird. Nicht ausfüllen!
An optional company name []: Ein anderer Name der Gesellschaft.

In der Datei mit dem CSR-Request findet ihr die im Base64-Format verschlüsselte Zertifikatsanforderung, welche zur Speicherung der Binär-Daten in der Textform dient. Auf den ersten Blick scheinen Ihnen die Daten ein unsinniger Text zu sein. Wenn sie die Angaben in CSR überprüfen möchten, verwenden Sie den Befehl req -noout -text -in name.csr

Die erstellte Zertifikatsanforderung können Sie im Kundenprofil des SSLmarkets in die Bestellung Ihres Zertifikats hinterlegen, oder an unseren Support an admin@zoner.cz senden.

Entfernung des Passwortes aus dem Private key

Wenn das Schützen des Privatschlüssels mithlfe eines Passworts bei der Verwendung des Zertifikats für Sie ein Problem darstellen sollte, oder wenn Ihr Webhoster den Privatschlüssel ohne Passwort fordert, ist es möglich, es in OpenSSL zu entfernen. Der Befehl für die Entfernung des Passwortes aus dem Privatschlüssel ist wie folgt:

rsa -in key-mit-passwort.key -out schluessel-ohne-passwort.key

Mit dem Parameter -in verweisen Sie auf die bestehende Datei des durch das Passwort geschützten Privatschlüssels, im Parameter -out spezifizieren Sie dann den Namen der Datei mit dem Privatschlüssel ohne das Passwort.

Zögern Sie nicht, sich an unseren Kundenservice zu wenden.


Petra Alm
Spezialistin für TLS-Zertifikate
DigiCert TLS/SSL Professional
e-mail: info(at)sslmarket.de