RSA-Schlüsselpaar erzeugen

Schritt 1: Private Key (RSA) erzeugen:

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private.pem

Schritt 2: Öffentlichen Schlüssel aus dem Private Key extrahieren:

openssl rsa -in private.pem -outform PEM -pubout -out public.pem

Private Key im PKCS#1-Format erzeugen

openssl genrsa --traditional -out private.pem 2048

Wird meist nicht mehr benötigt

ED22519-Schlüsselpaar erzeugen

ED22519 = Mit elliptischen Kurven

Schritt 1: Private Key (ED22519) erzeugen:

openssl genpkey -algorithm ed25519 -out private.pem

Schritt 2: Öffentlichen Schlüssel aus dem Private Key extrahieren:

openssl pkey -in private.pem -pubout -out public.pem

CSR erzeugen

Zuerst muss ein Schlüsselpaar erstellt werden (siehe oben)

CSR aus dem Private Key erzeugen:

openssl req -new -key private.pem -out my.csr

Inhalt des CSR ausgeben

openssl req -noout -text -in my.csr

SSH-Schlüssel erzeugen

SSH-Schlüssel mit ED22519:

ssh-keygen -t ed25519

Ver- und Entschlüsseln

Verschlüsselten Schlüssel wieder entschlüsseln

openssl key -in rsa.pem -out ohne_pw.pem

Schlüssel auslesen

Öffentliches Zertifikat eines Webservers auslesen

openssl s_client -showcerts -connect example.com:443

Öffentliches Zertifikat eines Webservers in Datei speichern

openssl s_client -showcerts -connect example.com:443 </dev/null > cert.crt

P12-Datei auslesen - auch verschlüsselt

openssl pkcs12 -in Datei.p12 -info

Zertifikats-Datei (CER) auslesen

openssl x509 -noout -text -in cert.cer

CommonName bzw. X509v3 Subject Alternative Name sind hier vor allem interessant.

Public Key-Infos auslesen

Man hat eine Datei mit dem Public Key-Inhalt (“Begin Public Key”) und möchte die Infos zum Zertifikat auslesen.

echo "Inhalt Public Key" | openssl x509 -text -noout

oder man hat eine entspr. Datei:

cat publickey.crt | openssl x509 -text -noout

Einsatzzweck (Purpose) auslesen

Den erlaubten Einsatzzweck eines Public Keys auslesen:

openssl x509 -purpose -in cert.crt

CRL-Infos auslesen

Man möchte die CRL-URLs auslesen:

Zuerst das Zertifikat herunterladen:

openssl s_client -showcerts -connect example.com:443 </dev/null > cert.crt

Jetzt die CRL-URLs auslesen die hinterlegt sind:

openssl x509 -in cert.crt -noout -ext crlDistributionPoints

Falls keine URLs hinterlegt sind, wird vermutlich OCSP verwendet.

OCSP-Anfrage stellen

Prüfen ob ein Zertifikat widerrufen wurde:

openssl s_client -showcerts -connect example.com:443 </dev/null > cert.crt

openssl x509 -in cert.crt -noout -ext authorityInfoAccess

curl -L <CA-Issuer-URI> > intermediate.crt

openssl ocsp -issuer intermediate.crt -cert cert.crt -url <OCSP-URI>