Willkommen zum ultimativen OpenSSL Zertifikat Handbuch
OpenSSL ist ein Open-Source-Toolkit zur Implementierung des SSL- und TLS-Protokolls sowie ein allgemeines Kryptographie-Toolkit. Es bietet eine Vielzahl von Befehlen für die Generierung und Verwaltung von Zertifikaten, privaten Schlüsseln und anderen kryptografischen Elementen. In diesem Artikel werden die gängigsten OpenSSL-Befehle mit entsprechenden Beispielen vorgestellt.
Der Artikel enthält sowohl die älteren als auch die neuen Befehle (OpenSSL ≥ 3.0). Die neuen Befehle werden in neueren OpenSSL-Versionen empfohlen, insbesondere, wenn du mit unterschiedlichen Algorithmen arbeiten musst (z.B. Elliptic-Curve-Schlüssel, DSA-Schlüssel etc.)
Weiterführende Lektüre:
- BSI - Technische Richtlinie TR-02102-1 - Kryptographische Verfahren: Empfehlungen und Schlüssellängen - Teil 1 (deutsch)
- BSI - Technische Richtlinie TR-02102-2 - Kryptographische Verfahren: Empfehlungen und Schlüssellängen - Teil 2: Verwendung von Transport Layer Security (deutsch)
- BSI - Technische Richtlinie TR-02102-3 - Kryptographische Verfahren: Empfehlungen und Schlüssellängen - Teil 3: Verwendung von Internet Protocol Security (IPSec) und Internet Key Exchange (IKEv2) (deutsch)
- BSI - Technische Richtlinie TR-02102-4 - Kryptographische Verfahren: Empfehlungen und Schlüssellängen - Teil 4: Verwendung von Secure Shell (SSH) (deutsch)
- BSI TR-03111 Elliptische-Kurven-Kryptographie (ECC) (englisch)
OpenSSL
Sämtliche in diesem OpenSSL Zertifikat Handbuch vorgestellten Befehle etc. werden mit OpenSSL, einer freien Software für TLS (damals SSL), durchgeführt. Wir empfehlen, die aktuellste Version zu verwenden. Zum Zeitpunkt der Erstellung dieses Artikels ist das die Version 3.3.2, welche am 03.09.2024 erschienen ist. Solltest du bereits OpenSSL installiert haben, kannst du die Version ganz einfach prüfen:
openssl version
Ausgabe:
OpenSSL 3.3.2 3 Sep 2024 (Library: OpenSSL 3.3.2 3 Sep 2024)
Solltest du noch kein OpenSSL installiert haben, kannst du es von folgenden Seiten beziehen:
Windows: https://slproweb.com/products/Win32OpenSSL.html*
Linux: https://openssl-library.org/source/index.html oder mittels des Paketmanagers deiner Distribution (APT, YUM etc.)
GitHub: https://github.com/openssl/openssl
Natürlich kannst du unter Linux auch deinen eigenen Build mittels make kompilieren, hierauf werden wir in diesem Artikel jedoch nicht eingehen.
* Dies ist nicht die offizielle OpenSSL-Website, da OpenSSL selbst keine vorkompilierten Pakete für Windows zur Verfügung stellt.
Zertifikatstypen
SSL/TLS
SSL/TLS-Zertifikate werde verwendet um sichere Verbindungen (HTTPS) zwischen einem Webbrowser (Client) und einen Webserver zu ermöglichen. Sie gewährleisten Verschlüsselung und Authentifizierung um sicherzustellen, dass die Kommunikation sicher und vertrauenswürdig ist.
Zertifikate unterscheiden sich zum einen durch die Art und Weise, wie die Validierung durchgeführt wird:
- Domain Validated (DV): Dieses Zertifikat validiert nur die Domäne. Es wird überprüft, ob der Antragsteller die Kontrolle über die Domäne besitzt, erfordert jedoch keine tiefere Identitätsprüfung. Die Validierung geschieht meist durch das Beantworten einer von der Zertifizierungsstelle an admin@, administrator@, hostmaster@ oder postmaster@ versendete E-Mail. Alternativ kann ein von der Zertifizierungsstelle vorgegebener TXT-Eintrag im DNS gesetzt werden. Es ist eines der meist eingesetzten Zertifikate, insbesondere bei kleinen Websites.
- Organization Validated (OV): Im Gegensatz zum DV-Zertifikat wird hierbei auch die Identität der Organisation geprüft. Dies geschieht durch die Einreichung eines Auszugs aus dem Handelsregister.
- Extended Validation (EV): Diese Zertifikate unterliegen einer strengen Überprüfung. Antragsteller müssen unter anderem Kriterien erfüllen wie beispielsweise: Domäne, Domänen-Inhaber, Identität, Postanschrift, Rechtsstatus, operative Existenz. EV-Zertifikate sind erhältlich für große Firmen, Banken, eingetragene Vereine und Behörden.
Des Weiteren gibt es unterschiedliche Arten von SSL/TLS-Zertifikaten (die meisten dieser Arten können als DV, OV oder EV bezogen werden):
- Einzelzertifikat: Dieses Zertifikat sichert eine einzige Domäne ab, bspw. it-tech.wiki. Häufig wird die Subdomain www. gratis mitabgesichert.
- Multidomain-Zertifikate (MDC): Hier können mehrere Domänen, sogenannte SANs (Subject Alternative Names), abgesichert werden. Es können bis zu 100 verschiedene Domänen und Subdomänen angegeben werden.
- Unified Communication (UC)-Zertifikate: Dies ist eine spezielle Version von Multidomain Zertifikaten. Es wurde ursprünglich für Microsoft Exchange und Microsoft Office Communication Server konzipiert.
- Wildcard-Zertifikate: Ein Wildcard-Zertifikat kann beliebig viele Subdomänen einer Stufe absichern. D.h., man kann bspw. forum.it-tech.wiki, blog.it-tech.wiki, shop.it-tech.wiki etc. absichern, aber nicht de.blog.it-tech.wiki oder static.cdn.it-tech.wiki. Auch die Domäne selbst, it-tech.wiki, gehört technisch nicht dazu. Einige Zertifizierungsstellen bieten jedoch häufig einen zweiten SAN gratis an, sodass man neben *.it-tech.wiki auch it-tech.wiki mit dem Wildcard-Zertifikat absichern kann. Multi-Level-Wildcard-Zertifikate (*.*.it-tech.wiki) gibt es nicht (obwohl einige Browser eine Unterstützung hierfür an Board haben).
- Multidomain-Wildcard-Zertifikate: Wie der Name schon erraten lässt, bietet dieses Zertifikate die Vorteile eines Wildcard-Zertifikats gepaart mit denen eines Multidomain-Zertifikates. Diese sichern in der Regel die TLDs ab, also it-tech.wiki und z.B. it-tech.shop, sondern auch alle Subdomänen des zweiten Ebene, bspw. de.it-tech.wiki, cdn.it-tech.wiki, mail.it-tech.shop, support.it-tech.shop etc.
E-Mail-Zertifikate (S/MIME)
S/MIME (Secure/Multipurpose Internet Mail Extensions)-Zertifikate werden genutzt, um E-Mails zu signieren und zu verschlüsseln. Die digitale Signatur garantiert die Authentizität und Integrität der E-Mail, stellt also sicher, dass diese nicht manipuliert wurde. Durch die Verschlüsselung wird zudem sichergestellt, dass nur der adressierte Empfänger die Nachricht entschlüsseln und lesen kann.
Auch bei dem E-Mail-Zertifikaten gibt es unterschiedliche Validierungsformen:
- E-Mail-Validiert (DV): Bei dieser Variante wird lediglich geprüft, ob der Antragsteller Zugriff auf die E-Mail-Adresse hat, z.B. indem er einen an die E-Mail-Adresse gesendeten Link aufruft oder einen erhaltenen Code bei der Zertifizierungsstelle eingibt.
- Individual Validated (IV): Wie DV-Zertifikate, allerdings ist zusätzlich der Name des Antragsstellers im Zertifikat enthalten. Die Identität des Antragstellers wird mit einem amtlichen Ausweisdokument und ggf. einer Videoverifizierung sichergestellt.
- Organisationsvalidiert (OV): Der Validierungsprozess entspricht dem eines organisationsvalidierten SSL/TLS-Zertifikats. Neben der Person wird auch die Organisation (Handelsregisterauszug, Steuerdokumente etc.) überprüft.
Weitere Zertifikate
Darüber hinaus gibt es noch viele weitere Formate, bspw. Code Signing Zertifikate, um Software-Signaturen zu erstellen, Client-Zertifikate, um die Authentifizierung von Benutzern und Geräten sicherzustellen, Document Signing-Zertifikate, um digitale Dokumente (z.B. PDFs) digital zu unterschreiben (signieren) und natürlich Intermediate- und Root-Zertifikate. Auf diese werden wir in diesem Artikel jedoch nicht näher eingehen.
Zertifikatsformate
Format | Kodierung | Verwendung | enthält privaten Schlüssel | enthält Zertifikatskette | Passwortschutz | Plattform1 | Dateiendung |
---|---|---|---|---|---|---|---|
PEM | Base64 (ASCII) | Zertifikate, private Schlüssel, Zertifikatsketten | Ja (falls vorhanden) | Ja | Nein | Apache, Nginx, OpenSSL | PEM (CER, CRT), KEY |
DER | Binär | Zertifikate, private Schlüssel | Ja (falls vorhanden) | Ja | Nein | Java, Windows | DER (CER, CRT) |
PKCS#7 | Base64 oder Binär | Zertifikate, Zertifikatsketten | Nein | Ja | Nein | Java, Windows, Exchange | P7B, P7C |
PKCS#12 | Binär | Zertifikate, private Schlüssel | Ja | Ja | Ja | Windows, macOS, Exchange | P12, PFX |
- unvollständige Liste, nur beispielhaft ↩︎
Allgemeines
Aufbau einer Zertifikatskette
Eine Zertifikatskette enthält mehrere Zertifikate innerhalb einer Datei. In der Regel liegen diese im PEM-Format vor und haben folgendes Format:
-----BEGIN CERTIFICATE-----
... (Zertifikat) ...
------END CERTIFICATE------
-----BEGIN CERTIFICATE-----
...(Zwischenzertifikat) ...
------END CERTIFICATE------
-----BEGIN CERTIFICATE-----
... (Root-Zertifikat) ...
------END CERTIFICATE------
Private Schlüssel mit RSA
Bewahre deine privaten Schlüssel immer an einem sicheren Ort auf!
Übersicht der RSA-Schlüssel
RSA-Schlüssel | Bit-Größe (Schlüssellänge) | Sicherheitsniveau (in Bits) | Beschreibung |
---|---|---|---|
RSA 1024 | 1024 | ~80 | Unsicher, nicht mehr empfohlen |
RSA 2048 | 2048 | ~112 | Standard für viele Anwendungen |
RSA 3072 | 3072 | ~128 | Höheres Sicherheitsniveau |
RSA 4096 | 4096 | ~152 | Sehr hohe Sicherheitsanforderungen |
RSA 7680 | 7680 | ~192 | Äquivalent zur Sicherheit der ECC-Kurve secp384r1 |
RSA 15360 | 15360 | ~256 | Äquivalent zur höchsten Sicherheit von secp521r1 und brainpoolP512r1 |
Generieren eines privaten Schlüssels mit RSA
openssl genpkey -algorithm RSA -out private_key.pem
openssl genrsa -out private.pem
Diese Befehle erstellen einen RSA-Schlüssel mit der Standardgröße von 2048 Bits.
Parameter | Bedeutung |
---|---|
-out | Gibt die Datei an, in die der Schlüssel geschrieben wird |
-algorithm | Verschlüsselungsalgorithmus (RSA, EC, etc.) |
Generieren eines privaten Schlüssels spezifischer Länge mit RSA
Solltest du einen Schlüssel anderer Größe benötigen, kannst du diese als Parameter übergeben und somit einen Schlüssel mit einer spezifischen Länge generieren. Im folgenden Beispiel erstellen wir einen privaten Schlüssel mit einer Länge von 4096 Bit:
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:4096
openssl genrsa -out private.pem 4096
Parameter | Bedeutung |
---|---|
-out | Gibt die Datei an, in die der Schlüssel geschrieben wird |
-algorithm | Verschlüsselungsalgorithmus (RSA, EC, etc.) |
-pkeyopt rsa_keygen_bits | Die Schlüssellänge in Bits (hier: 4096 Bits) |
Private Schlüssel mit elliptischen Kurven (ECDSA)
Der Vorteil von elliptischen Kurven sind die wesentlich kürzeren Schlüssel gegenüber ihre äquivalenten RSA-Schlüssel bei gleichem Sicherheitsniveau. Dies macht sie besonders effizient, da für die das gleiche Sicherheitsniveau weniger Rechenleistung und Speicher benötigt wird.
Bei Schlüssel mit elliptischen Kurven wird die Schlüssellänge nicht über die Angabe der Länge in Bit, wie bei RSA, definiert, sondern durch die Wahl der entsprechenden Kurve.
Übersicht der wichtigsten elliptischen Kurven
Kurvenname | Bit-Größe (Schlüssellänge) | Sicherheitsniveau (in Bits) | Äquivalente RSA-Schlüssellänge | Beschreibung |
---|---|---|---|---|
secp160r1 | 160 | ~80 | 1024 | Verwendet in einigen älteren Standards |
secp192r1 (prime192v1) | 192 | ~96 | 1536 | Bekannt als NIST P-192, Standardkurve |
secp224r1 | 224 | ~112 | 2048 | NIST P-224, mittlere Sicherheitsstufe |
secp256r1 (prime256v1) | 256 | ~128 | 3081 | NIST P-256, weit verbreitet und empfohlen |
secp384r1 | 384 | ~192 | 7680 | NIST P-384, hohe Sicherheitsstufe |
secp521r1 | 521 | ~256 | 15360 | NIST P-521, bietet höchste Sicherheit |
brainpoolP160r1 | 160 | ~80 | 1024 | Brainpool-Kurve für spezielle Anwendungen |
brainpoolP192r1 | 192 | ~96 | 1536 | Brainpool-Alternative zu NIST P-192 |
brainpoolP224r1 | 224 | ~112 | 2048 | Brainpool-Alternative zu NIST P-224 |
brainpoolP256r1 | 256 | ~128 | 3072 | Brainpool-Alternative zu NIST P-256 |
brainpoolP320r1 | 320 | ~160 | 5120 | Brainpool für Anwendungen mit höheren Anforderungen |
brainpoolP384r1 | 384 | ~192 | 7680 | Brainpool-Alternative zu NIST P-384 |
brainpoolP512r1 | 512 | ~256 | 15360 | Brainpool für höchste Sicherheitsanforderungen |
curve25519 | 256 | ~128 | 3072 | Verwendet für moderne kryptografische Protokolle (Schnorr-Signaturen) |
curve25519 | 448 | ~224 | 7680 | Bietet höhere Sicherheit als Curve25519 |
Auflisten aller unterstützen Kurvenparameter
openssl ecparam -list_curves
Generieren eines privaten Schlüssels mit ECDSA
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:prime256v1 -out private_key_ecdsa.pem
openssl ecparam -genkey -name prime256v1 -out private_key_ecdsa.pem
Parameter | Bedeutung |
---|---|
-name | Name der zu verwendenden elliptischen Kurve |
-out | Gibt die Datei an, in die der Schlüssel geschrieben wird |
-algorithm | Verschlüsselungsalgorithmus (RSA, EC, etc.) |
-pkeyopt ec_paramgen_curve | Legt die elliptische Kurve fest (hier: prime256v1) |
Generieren einer Zertifikatsanforderung
Attribut | Bedeutung |
---|---|
C | Land (Country Name) |
ST | Staat oder Provinz (State) |
L | Ort bzw. Stadt (Locality) |
O | Organisation (Organization) |
OU | Abteilung (Organization Unit) |
CN | "gebräuchlicher Name" = Domänname (Common Name) |
DNS.X | Domänename und weitere SANs (Subject Alternative Names), z.B. Subdomänen etc. |
CSR mit Parametern
Während der Ausführung wirst du aufgefordert, verschiedene Informationen einzugeben. Bei der Common Name (CN)-Abfrage gib den Domänen-Namen ein, z.B. it-tech.wiki oder bei einem Wildcard-Zertifikat *.it-tech.wiki.
# Generiere einen privaten Schlüssel
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
# Erstelle eine CSR mit interaktiver Eingabe
openssl req -new -key private_key.pem -out request.csr
# Generiere einen privaten Schlüssel
openssl genrsa -out private_key.pem 2048
# Erstelle eine CSR mit interaktiver Eingabe
openssl req -new -key private_key.pem -out request.csr
Parameter | Bedeutung |
---|---|
-new | Erzeugt einen neuen CSR |
-key | Pfad und Dateiname des zu verwendenden privaten Schlüssel |
-out | Gibt die Datei an, in die der CSR geschrieben wird |
CSR mit einer Konfigurationsdatei
[req]
prompt = no
distinguished_name = req_distinguished_name
[req_distinguished_name]
C = DE
ST = NRW
L = Duisburg
O = IT-Tech
OU = IT
CN = *.it-tech.wiki
Erstelle nun mithilfe der Konfigurationsdatei einen privaten Schlüssel (wenn noch nicht vorhanden) und den CSR.
# Generiere einen privaten Schlüssel
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
# Erstelle die CSR mit der Konfigurationsdatei
openssl req -new -key private_key.pem -out request.csr -config req.conf
# Generiere einen privaten Schlüssel
openssl genrsa -out private_key.pem 2048
# Erstelle den CSR mit der Konfigurationsdatei
openssl req -new -key private_key.pem -out request.csr -config req.conf
Parameter | Bedeutung |
---|---|
-new | Erzeugt einen neuen CSR |
-key | Pfad und Dateiname des zu verwendenden privaten Schlüssel |
-out | Gibt die Datei an, in die der CSR geschrieben wird |
-config | Pfad und Dateiname der zu verwendenden Konfigurationsdatei |
CSR mit einer Konfigurationsdatei und mehreren SANs
[req]
prompt = no
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
C = DE
ST = NRW
L = Duisburg
O = IT-Tech
OU = IT
CN = *.it-tech.wiki
[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.it-tech.wiki
DNS.2 = it-tech.wiki
Vernwende die Schreibweise *.domain.tld für sogenannte Wildcard-Zertifikate. Viele Zertifikatsanbieter sichern kostenlos einen weiteren SAN ab, hier empfiehlt es sich sehr, die Domain (domain.tld) selbst anzugeben (siehe obiges Beispiel).
Der Befehl zum Erzeugen des privaten Schlüssels und des CSR sind identisch zu 2.2.
CSR mit ECDSA und SANs
# Generiere einen ECDSA-Schlüssel
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:prime256v1 -out private_key_ecdsa.pem
# Erstelle einen CSR mit der Konfigurationsdatei
openssl req -new -key private_key_ecdsa.pem -out request_ecdsa.csr -config req.conf
# Generiere einen ECDSA-Schlüssel
openssl ecparam -genkey -name prime256v1 -out private_key_ecdsa.pem
# Erstelle einen CSR mit der Konfigurationsdatei
openssl req -new -key private_key_ecdsa.pem -out request_ecdsa.csr -config req.conf
Private Schlüssel und Zertifikate konvertieren
PEM zu DER
openssl x509 -in cert.pem -outform der -out cert.der
DER zu PEM
openssl x509 -in cert.der -inform der -out cert.pem -outform pem
PEM zu PKCS12
openssl pkcs12 -export -out cert.p12 -inkey private_key.pem -in cert.pem -certfile chain.pem
Die Angabe des Parameters -certfile
zur Angabe von Zwischenzertifikaten ist optional.
Wenn Du das Root-Zertifikat ebenfalls einschließen möchtest, füge es mit zur Kette in der Datei chain.pem hinzu.
PKCS12 zu PEM
openssl pkcs12 -in cert.p12 -out cert.pem -nodes
Parameter | Bedeutung |
---|---|
-in | Pfad und Dateiname des Quell-Zertifikat |
-inform | Format des Quell-Zertifikat |
-out | Pfad und Dateiname, in der das neue Zertifikat geschrieben werden soll |
-outform | Ziel-Format (der, pem) |
-certfile | Pfad und Dateiname von Zwischenzertifikaten (optional) |
-nodes | Der private Schlüssel soll nicht verschlüsselt werden (= No DES) |
Private Schlüssel und Zertifikate prüfen
Prüfen eines privaten Schlüssels
openssl pkey -in private_key.pem -check
openssl rsa -in private_key.pem -check
Prüfen eines Zertifikats
openssl x509 -in cert.pem -text -noout
Prüfen eines CSR
openssl req -in request.csr -text -noout
Prüfen, ob ein privater Schlüssel, ein Zertifikat und ein CSR zusammenpassen
Um zu überprüfen, ob ein privater Schlüssel, ein Zertifikat und ein CSR zusammenpassen, kannst du mit OpenSSL einen Vergleich durchführen. Dies funktioniert, indem du den "Modulus" aller Dateien vergleichst. Es ist wichtig, dass du das richtige Format für jede Datei verwendest. Der private Schlüssel muss z.B. im PEM-Format sein, und auch die CSR sollte in einem standardisierten Format wie PEM vorliegen.
Zuerst musst du den Modulus des privaten Schlüssels überprüfen:
openssl rsa -noout -modulus -in privkey.pem | openssl md5
Dann extrahiere den Modulus des Zertifikats:
openssl x509 -noout -modulus -in cert.pem | openssl md5
Nun zeige den Modulus der CSR an:
openssl req -noout -modulus -in request.csr | openssl md5
Alle drei MD5-Hashes sollten identisch sein, wenn der private Schlüssel, das Zertifikat und der CSR zusammenpassen. Wenn einer der Werte unterschiedlich ist, dann stimmt etwas nicht.
Zertifikate signieren
Ein selbst signiertes Zertifikat erstellen
openssl req -new -x509 -key private_key.pem -out cert.pem -days 365
Parametername | Bedeutung |
---|---|
-key | Dateipfad und -name zum zu verwendenden privaten Schlüssel |
-out | Dateipfad und -name für Ausgabedatei (Zertifikat) |
-days | Gültigkeitsdauer in Tagen |
Ein Zertifikat mittels CA signieren
openssl x509 -req -in request.csr -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -out cert.pem -days 365
Parametername | Bedeutung |
---|---|
-in | Datei, die den CSR enthält |
-CA | Gibt das Zertifikat der Zertifizierungsstelle an (Certificate Authority) |
-CAkey | Gibt den privaten Schlüssel der Zertifizierungsstelle (CA) an, welcher zum Signieren verwendet werden soll |
-CAcreateserial | Erstellt eine Datei, welche die Seriennummer des ausgestellten Zertifikats enthält (Standardname: ca_cert.srl). Das Weglassen des Parameters ist nicht möglich. Da die Seriennummer für jedes Zertifikat für jeden Aussteller eindeutig sein muss, muss ein Aussteller, in diesem Fall Du, nachverfolgen, welche Seriennummern er zuvor verwendet hat, um sicherzustellen, dass er keine wiederverwendet. OpenSSL bietet Dir mithilfe einer Seriennummerndatei eine einfache Möglichkeit, dies nachzuverfolgen. |
-out | Dateipfad und -name für Ausgabedatei (Zertifikat) |
-days | Gültigkeitsdauer in Tagen |
Schlüssel manipulieren
Privaten Schlüssel aus einer PEM-Datei extrahieren
openssl pkey -in cert_and_key.pem -out private_key.pem
openssl rsa -in cert_and_key.pem -out private_key.pem
Parametername | Bedeutung |
---|---|
-in | Zertifikatsdatei |
-out | Dateipfad und -name für Ausgabedatei (privaten Schlüssel) |
Privaten Schlüssel aus einer PFX/P12-Datei (PKCS12) extrahieren
openssl pkcs12 -in file.pfx -nocerts -out private_key.pem -nodes
Parametername | Bedeutung |
---|---|
-in | Pfad zur PFX/P12-Datei, deren privater Schlüssel extrahiert werden soll |
-out | Pfad zur Ausgabedatei, in welcher der extrahierte private Schlüssel geschrieben wird |
-nocerts | nur den privaten Schlüssel extrahieren, ohne das dazugehörende Zertifikat |
-nodes | Privaten Schlüssel unverschlüsselt speichern |
Privaten Schlüssel mit einer Passphrase schützen
openssl pkey -in private_key.pem -aes256 -out encrypted_key.pem
openssl rsa -in private_key.pem -des3 -out encrypted_key.pem
Parametername | Bedeutung |
---|---|
-in | Datei mit dem privaten Schlüssel |
-out | Ausgabedatei, in welcher der verschlüsselte private Schlüssel gespeichert wird |
-aes256 | verschlüsselt den privaten Schlüssel mit AES-256 |
-des3 | verschlüsselt den privaten Schlüssel mit dem Triple DES (3DES)-Algorithmus |
Passphrase von einem privaten Schlüssel entfernen
openssl pkey -in encrypted_key.pem -out unencrypted_key.pem
openssl rsa -in encrypted_key.pem -out unencrypted_key.pem
Parametername | Bedeutung |
---|---|
-in | Datei mit dem privaten Schlüssel, welcher entfernt werden soll |
-out | Ausgabedatei, in welcher der entschlüsselte private Schlüssel gespeichert wird |
Sonstiges
Zertifikatskette einer Webseite anzeigen
openssl s_client -connect it-tech.wiki:443 -showcerts
Parametername | Bedeutung |
---|---|
openssl s_client | SSL/TLS-Verbindung zu einem Server herstellen |
-connect | Stellt eine Verbindung zur angegebenen Domäne über Port 443 (HTTPS) her. |
-showcerts | Zeigt alle Zertifikate in der Zertifikatskette an |
Appendix
Abkürzungen
Abkürzung | Erklärung |
---|---|
BSI | Bundesamt für Sicherheit in der Informationstechnik – Deutsche Behörde für IT-Sicherheit. |
CER | Certificate – Zertifikatsformat, häufig als Dateiendung für Zertifikate verwendet. |
CN | Common Name – Der „allgemeine Name“ im Zertifikat, oft der Domainname oder der Name des Besitzers. |
CRT | Certificate – Dateiendung für ein Zertifikat im PEM- oder DER-Format. |
CSR | Certificate Signing Request – Zertifikatsanforderung, die an eine Zertifizierungsstelle (CA) gesendet wird. |
DES | Data Encryption Standard – Ein veralteter symmetrischer Verschlüsselungsalgorithmus. |
DSA | Digital Signature Algorithm – Ein Algorithmus zur Erzeugung digitaler Signaturen. |
DV | Domain Validation – Zertifikatstyp, der die Domaininhaberschaft validiert. |
ECC | Elliptic Curve Cryptography – Ein kryptografisches Verfahren basierend auf elliptischen Kurven. |
ECDSA | Elliptic Curve Digital Signature Algorithm – Ein Algorithmus zur Erzeugung von digitalen Signaturen auf Basis elliptischer Kurven. |
EV | Extended Validation – Zertifikat mit erweiterter Validierung, das besonders strenge Prüfungen erfordert. |
HTTPS | Hypertext Transfer Protocol Secure – Sicheres HTTP-Protokoll zur verschlüsselten Datenübertragung. |
IV | Individual Validation – Zertifikatstyp, bei dem die Identität einer einzelnen Person validiert wird. |
MDC | Multi-Domain Certificate – Zertifikat, das mehrere Domains absichern kann. |
OV | Organization Validation – Zertifikat, bei dem die Identität einer Organisation überprüft wird. |
PEM | Privacy Enhanced Mail – Ein Dateiformat für Zertifikate und Schlüssel, typischerweise in Base64 kodiert. |
PFX | Personal Information Exchange – Format für die Speicherung von Zertifikaten und privaten Schlüsseln, oft passwortgeschützt. |
PKCS | Public Key Cryptography Standards – Standards für kryptografische Techniken, z.B. PKCS#12 für PFX-Dateien. |
RSA | Rivest-Shamir-Adleman – Ein asymmetrischer Verschlüsselungs- und Signaturalgorithmus. |
S/MIME | Secure/Multipurpose Internet Mail Extensions – Ein Standard für die Verschlüsselung und Signierung von E-Mails. |
SAN | Subject Alternative Name – Ein Feld in Zertifikaten, das alternative Namen (z.B. zusätzliche Domänen) enthält. |
SSL | Secure Sockets Layer – Ein veraltetes Protokoll zur sicheren Datenübertragung im Internet. Vorgänger von TLS. |
TLD | Top-Level Domain – Die höchste Ebene einer Domäne, z.B. „.com“ oder „.de“. |
TLS | Transport Layer Security – Ein kryptografisches Protokoll zur sicheren Datenübertragung im Internet. Nachfolger von SSL. |
UC | Unified Communications – Zertifikate für Unified Communications-Anwendungen, oft zur Absicherung mehrerer Dienste/Domänen. |