OpenSSL-Kurzreferenz

Erläuterungen der wichtigsten Kommandos zum Erstellen von Schlüsseln, Zertifikaten und Zertifikatsrequests in kurzer Form.

Die beschriebenen Befehle sind Unix Shell-Kommandos. Zur besseren Lesbarkeit sind lange Befehle am Zeilenende umgebrochen, sie sind dann in der Shell ohne Zeilenumbruch einzugeben.

  1. openssl req -newkey rsa:2048 -out request.pem -keyout pub-sec-key.pem

    Generiert einen neuen 2048 Bit langen RSA-Schlüssel und legt ihn in der Datei pub-sec-key.pem ab. Passend dazu wird ein Request in der Datei request.pem erstellt.

  2. openssl req -new -out request.pem -key pub-sec-key.pem

    Wie zuvor, nur wird der Request zum bereits vorhandenen Schlüssel pub-sec-key.pem generiert.

  3. openssl req -text -noout -in request.pem

    Zeigt den Request request.pem an.

  4. openssl req -verify -noout -in request.pem

    Verifiziert die Selbstsignatur des Requests request.pem.

  5. openssl req -noout -modulus -in request.pem | openssl sha1 -c

    Generiert einen SHA1-Fingerabdruck vom Modulus des Schlüssels aus dem Request request.pem.

  6. openssl req -x509 -days 365 -newkey rsa:2048
    -out self-signed-certificate.pem -keyout pub-sec-key.pem

    Generiert einen 2048 Bit langen RSA-Schlüssel und legt ihn in der Datei pub-sec-key.pem ab. Es wird ein selbst signiertes Zertifikat erstellt und in der Datei self-signed-certificate.pem gespeichert. Das Zertifikat ist 365 Tage gültig und für simple Testzwecke gedacht.

  7. openssl req -x509 -days 365 -new -out self-signed-certificate.pem
    -key pub-sec-key.pem

    Wie zuvor, erstellt jedoch ein selbst signiertes Zertifikat aus einem vorhandenen Schlüssel pub-sec-key.pem.

  8. openssl x509 -x509toreq -in self-signed-certificate.pem
    -signkey pub-sec-key.pem -out request.pem

    Erstellt neuen Request aus altem Selbstzertifikat.

  9. openssl x509 -text -noout -in self-signed-certificate.pem

    Gibt das Zertifikat self-signed-certificate.pem als Klartext aus.

  10. openssl x509 -fingerprint -noout -in self-signed-certificate.pem

    Gibt den Fingerabdruck des X.509 Zertifikats self-signed-certificate.pem aus. Der Default-Algorithmus ist SHA-1. Mit zusätzlicher Option -sha256 wird der Algorithmus SHA-256 verwendet.

  11. openssl verify -issuer_checks -CAfile self-signed-certificate.pem
    self-signed-certificate.pem

    Überprüft ein selbst signiertes Zertifikat.

  12. openssl s_client -showcerts -CAfile self-signed-certificate.pem
    -connect www.dfn-pca.de:443

    Baut eine OpenSSL-Verbindung unter Verwendung des Zertifikats self-signed-certificate.pem zum angegebenen Server auf. Es wird dabei die gesamte Zertifikatskette angezeigt.

  13. openssl crl -noout -text -CAfile self-signed-certificate.pem crl.pem

    Gibt die Zertifikats-Widerrufsliste crl.pem in Klartext aus.

  14. openssl pkcs12 -export -inkey pub-sec-key.pem -certfile certificate-chain.pem
    -out pub-sec-key-certificate-and-chain.p12 -in signed-certificate.pem

    Erzeugt die PKCS#12-Datei pub-sec-key-certificate-and-chain.p12 für den Import nach MS Windows 2000 oder MS Windows XP zur späteren Nutzung durch den MS Internet Information Server (IIS). Die Datei enthält den privaten und öffentlichen Schlüssel (pub-sec-key.pem) mit dem Zertifikat einer Zertifizierungsinstanz (signed-certificate.pem) und einer optionalen Zertifikatkette bzw. dem Zertifizierungspfad (certificate-chain.pem).

    In Windows wird das ,,Zertifikate-Snap-In'' für die Microsoft Management Console (MMC) benötigt. Hier muss die PKCS#12-Datei pub-sec-key-certificate-and-chain.p12 in die Zertifikat-Datenbank Eigene Zertifikate des Zertifikate (Lokaler Computer) importiert werden.

    Die evtl. ebenfalls importierten Zertifikate aus der Kette (Wurzel-CA, Stammzertifizierungsstelle bzw. Zwischenzertifizierungsstellen (Intermediate-CAs)) sollten danach aus dem Speicher für Eigene Zertifikate in den Bereich Vertrauenswürdige Stammzertifizierungsstellen bzw. Zwischenzertifizierungsstellen verschoben werden.

    Ist das Server-Zertifikat im IIS eingestellt, so schickt der IIS bei jeder SSL-Verbindung fast die gesamte Zertifikatkette (Server-Zertifikat und alle Zwischenzertifizierungsstellen-Zertifikate) an den Browser (Klienten). Ausgenommen hiervon ist das Zertifikat der Stammzertifizierungsstelle in dieser Kette.

Downloads

Weiterführende Informationen sind in den man pages von OpenSSL zu finden. Es gibt eine kurze man page zu OpenSSL selbst (openssl(1)) und jeweils zu den Unterkommandos (z. B. req(1)). Die Beschreibungen sind auch unter http://www.openssl.org/docs/ verfügbar.

OpenSSL wird außerdem im DFN-Bericht 89 ,,Aufbau und Betrieb einer Zertifizierungsinstanz''  erläutert: