«

Mrz 10

OpenSSL und Zertifikate

Einige Infos zu Zertifikaten und Verschlüsselung sowie Infos zum Tool openssl

Die nachfolgenden Tabelle listet einige relevante Begriffe auf.

Begriff Beschreibung Link
digitales Zertifikat wikipedia
x509 Ein Standard der die Datentypen Public-Key Zertifikat, Attributzertifikat, Certificate Revocation List (CRL) sowie Attribute Certificate Revocation List (ACRL) definiert. wikipedia
Base64 Dies ein Verfahren zur Kodierung von 8-Bit-Binärdaten in eine Zeichenfolge, die nur aus lesbaren, Codepage-unabhängigen ASCII-Zeichen besteht. wikipedia
CA Certificate Authority – Zertifizierungsstelle wikipedia
Ciphers Chiffren – eine standardisierte Sammlung kryptographischer Verfahren wikipedia
CRL Certificate Revocation List – Zertifikatssperrliste wikipedia
CSR Certificate Signing Request – Zertifikatsignierungsanforderung (Base64 kodiert) wikipedia
PEM Privacy Enhanced Mail – Base64-kodiertes Zertifikat wikipedia
PKI Public Key Infrastruktur wikipedia
DER DER-kodiertes Zertifikat
OCSP Online Certificate Status Protocol – Online-Abfrage des Status eines Zertifikates wikipedia

 

Auf die nachfolgende Liste an Dateitypen trifft man oft im Zusammenhang mit dem Thema Zertifikate. (Quelle: wikipedia)

Dateiendung Beschreibung
.CER DER- oder Base64-kodiertes Zertifikat
.CRT siehe .CER
.CSR Base64-kodierte Zertifizierungsanfrage des öffentlichen Schlüssels sowie weiteren Metadaten des Besitzers. Umgeben wird sie von

"-----BEGIN CERTIFICATE REQUEST-----" und "-----END CERTIFICATE REQUEST-----"
.DER DER-kodiertes Zertifikat
.P12 PKCS#12, kann öffentliche Zertifikate und (Kennwort-geschützt) private Schlüssel beinhalten.
.P7B Siehe .p7c
.P7C PKCS#7-signierte Datenstruktur ohne Dateninhalt, nur mit Zertifikat(en) oder Zertifikatsperrliste(n)
.PEM Base64-kodiertes Zertifikat, umgeben ist es von

"-----BEGIN CERTIFICATE-----" und "-----END CERTIFICATE-----"
.PFX siehe .p12

 

Es folgt die Auflistung einiger Kommandozeilenbefehle mit dem Tool OpenSSL.

 
Prüfen einer SSL Verbindung (hier explizit mit TLS1.2) . Es sollten alle Zertifikate und auch Ciphers angezeigt werden.

1
openssl s_client -connect www.meineseite.de:443 -tls1_2

Erstellen eines einfachen SSL-Webservers zum testen (Quelle: https://superhero.ninja)

1
openssl s_server -key myPrivateKey.pem -cert myPublicCert.pem -accept 443 -www

Anzeige der verfügbaren Ciphers

1
openssl ciphers

 

Allgemeine Befehle (Quelle: sslshopper.com):
Erstellung eines privaten Schlüssels (ohne Passwort)

1
openssl genrsa -out meinPrivaterHausschluessel.key 2048

Erstellung eines neuen privaten Schlüssel sowie eines CSR (Certificate Signing Request)

1
2
openssl req -out myCSR.csr -new -newkey rsa:2048 -nodes 
        -keyout meinPrivaterHausschluessel.key

Erstllung eines selbst signierten Zertifikates mit sha256 (Gültigkeit: 3y1d)

1
2
openssl req -x509 -sha256 -nodes -days 1096 -newkey rsa:2048
        -keyout meinPrivaterHausschluessel.key -out meinZertifikat.crt

Erstellung eines CSR für einen vorhandenen privaten Schlüssel

1
openssl req -out myCSR.csr -key meinPrivaterHausschluessel.key -new

Erstellung eines CSR auf Basis eines bereits bestehenden Zertifikates

1
2
openssl x509 -x509toreq -in meinNochZertifikat.crt -out myCSR.csr
        -signkey meinPrivaterHausschluessel.key

 

Prüfungen mittels OpenSSL (Quelle: sslshopper.com)
Prüfung eines Certificate Signing Request (CSR)

1
openssl req -text -noout -verify -in myCSR.csr

Prüfung des privaten Schlüssels

1
openssl rsa -in meinPrivaterHausschluessel.key -check

Prüfung des Zertifikats

1
openssl x509 -in meinZertifikat.crt -text -noout

Prüfung einer PKCS#12 Datei (.pfx or .p12)

1
openssl pkcs12 -info -in keyContainer.p12

 

Konvertierung mittels OpenSSL (Quelle: sslshopper.com)
Konvertiert eine .DER Datei (.crt .cer .der) in das .PEM Format

1
openssl x509 -inform der -in meinZertifikat.cer -out meinZertifikat.pem

Konvertiert eine .PEM Datei in das .DER Format

1
openssl x509 -outform der -in meinZertifikat.pem -out meinZertifikat.der

Konvertiert eine PKCS#12 Datei, welche den privaten Schlüssel und das Zertifikat enthält in das .PEM Format

1
openssl pkcs12 -in keyContainer.pfx -out keyContainer.pem -nodes

Konvertiert eine .PEM Datei und den privaten Schlüssel in das PKCS#12 Format

1
2
3
openssl pkcs12 -export -out keyContainer.pfx 
        -inkey meinPrivaterHausschluessel.key
        -in meinZertifikat.crt -certfile RootCA-Cert.crt

 
Quellen/Weiterführende Links:
Website Check (ssllabs.com) – https://www.ssllabs.com/ssltest/
Häufig genutze openssl Kommandos (sslhopper.com) – https://www.sslshopper.com/article-most-common-openssl-commands.html