Inhaltsverzeichnis

Zertifikate - Programme und Tools

Zertifikat komplett anzeigen

 # openssl x509 -noout -text -in <zertifikatsname.crt>

Herausgeber des Zertifikats anzeigen

 # openssl x509 -noout -issuer -in <zertifikatsname.crt>

Zertifikats-Inhaber anzeigen

 # openssl x509 -noout -subject -in <zertifikatsname.crt>

Gültigkeitszeitraum des Zertifikats anzeigen

 # openssl x509 -noout -dates -in <zertifikatsname.crt>

Gültigkeitszeitraum des Zertifikats kombiniert anzeigen

 # openssl x509 -noout -issuer -subject -dates -in <zertifikatsname.crt>

Hashwert des Zertifikates anzeigen

 # openssl x509 -noout -hash -in <zertifikatsname.crt>

MD5-Fingerprint des Zertifikates anzeigen

 # openssl x509 -noout -fingerprint -in <zertifikatsname.crt>

SSL-Zertifikat überprüfen

 # openssl verify -CApath /etc/pki/tls/certs -verbose <zertifikatsname.crt>

SSL-Port auf Zertifikate abfragen

 # openssl s_client -CApath /etc/pki/tls/certs -connect localhost:636 -showcerts

Die Passphrase eines Keyfiles entfernen

 # openssl rsa -in <zertifikatsname.key> -out <neueskeyfile.key>

Die Passphrase eines Keyfiles ändern

 # openssl rsa -des3 -in <zertifikatsname.key> -out <neueskeyfile.key>

Einen CSR Erzeugen

4096 Bit RSA-Key erzeugen

 # openssl genrsa -out <zertifikatsname.key> 4096

Key mit einer Passphrase versehen

 # openssl rsa -des3 -in <zertifikatsname.key> -out <zertifikatsname.key.sec>

Ein Certificate Signing Request erzeugen

 # openssl req -new -key <zertifikatsname.key> -out <zertifikatsname.csr>

Möchte man SHA256 als Signatur Hash verwenden gibt man noch die Option -sha256 beim Generieren des Certificate Signing Request an.

 # openssl req -new -sha256 -key <zertifikatsname.key> -out <zertifikatsname.csr>

Ein Certificate Signing Request anzeigen/auslesen

 # openssl req -noout -text -in <request.csr>

Zertifikate von PEM nach DER konvertieren

 # openssl x509 -outform der -in certificate.pem -out certificate.der

Zertifikate von PEM nach P7B konvertieren

 # openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

Zertifikate von PEM nach PFX konvertieren

 # openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

Zertifikate von DER nach PEM konvertieren

 # openssl x509 -inform der -in certificate.cer -out certificate.pem

Zertifikate von P7B nach PEM konvertieren

 # openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

Zertifikate von P7B nach PFX konvertieren

 # openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

oder

 # openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

Zertifikate von PFX nach PEM konvertieren

 # openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

Serverkey aus einem PFX- / PKCS12-Container extrahieren

Möchte man aus einem Clientzertifikat, welches mit dem Browser Firefox erstellt wurde oder aus einem ISS PFX-Container den Schlüssel extrahieren, gehen wir wie folgt vor:

  1. Key Exportieren:
     $ openssl pkcs12 -in serverzertifikat.p12 -nocerts -out server.key
    Enter Import Password:
    MAC verified OK
    Enter PEM pass phrase:
    Verifying - Enter PEM pass phrase:
  2. Keydatei normalisieren:
    Beim exportierten Schlüssel, sind noch Zusatzinformationen enthalten, die wir nun noch entfernen.
     $ vim server.key
    Bag Attributes
        friendlyName: Michael Nausch's Root CA ID
        localKeyID: 8E D8 F2 19 82 E6 6D 14 08 19 67 0B B6 70 33 C4 24 39 20 85
    Key Attributes: <No Attributes>
    -----BEGIN ENCRYPTED PRIVATE KEY-----
    MIIFDjBABgBur$1ck1$T31NV011IDI07BkiG9w0BBQwwDgQI9KkTgM0blTECAggA
    MBQGCCqGSIb3DQMHBAj/FsaQiJyUjASCBMjaR8
    ...

    Hier entfernen wir alles vor der ersten Zeile, so daß die erste Zeile den String —–BEGIN ENCRYPTED PRIVATE KEY—– enthält.

    -----BEGIN ENCRYPTED PRIVATE KEY-----
    MIIFDjBABgBur$1ck1$T31NV011IDI07BkiG9w0BBQwwDgQI9KkTgM0blTECAggA
    MBQGCCqGSIb3DQMHBAj/FsaQiJyUjASCBMjaR8
    ...

Zertifikat aus einem PFX- / PKCS12-Container extrahieren

Möchte man aus einem Clientzertifikat, welches mit dem Browser Firefox erstellt wurde oder aus einem ISS PFX-Container das Zertifikat selbst, gehen wir wie folgt vor:

  1. Zertifikat Exportieren:
     $ openssl pkcs12 -in codesigning_cert.p12 -clcerts -nokeys -out server.crt
    Enter Import Password:
    MAC verified OK 
  2. Zertifikat normalisieren:
    Beim exportierten Zertifikat, sind noch Zusatzinformationen enthalten, die wir nun noch entfernen.
    Bag Attributes
        friendlyName: Michael Nausch's Root CA ID
        localKeyID: 8E D8 F2 19 14 08 19 67 49 0B B6 70 33 C4 24 39 20 85
    subject=/CN=Michael Nausch/emailAddress=codesigning@nausch.org
    issuer=/O=Root CA/OU=http://www.cacert.org/CN=CA Cert Signing Authority/emailAddress=support@cacert.org
    -----BEGIN CERTIFICATE-----
    MIIFoDCCA4igAwIBAgIDDTYBMA0GCSqGSIb3DQEBBQUAMHkxEDAO7gNVBAoTB1Jv
    b3QgQ0ExHjAcBgNVBAsT4Eh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ
    Q0EgQ2VydCBTaWduaW5
    ...
     $ vim server.crt
    -----BEGIN CERTIFICATE-----
    MIIFoDCCA4igAwIBAgIDDTYBMA0GCSqGSIb3DQEBBQUAMHkxEDAO7gNVBAoTB1Jv
    b3QgQ0ExHjAcBgNVBAsT4Eh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ
    Q0EgQ2VydCBTaWduaW5
    ...

Links