Zertifikate & CSR

6 Kernkonzepte
Die wichtigsten Konzepte für X.509-Zertifikate und CSRs: CSR · Zertifikatstypen · Zertifikatsketten · X.509-Felder · Validierung · Tools Zertifikate sind das Herzstück der SSL/TLS-Verschlüsselung. Diese Cheatsheet erklärt die Erstellung von CSRs, die verschiedenen Zertifikatstypen, den Aufbau von Zertifikatsketten und die Validierung.

CSR – Certificate Signing Request

CSR · Antrag · Public Key
CSR = Public Key + Subject + Signature Der CSR wird an eine CA gesendet, um ein signiertes Zertifikat zu erhalten

Certificate Signing Request (CSR) ist eine formatierte Anfrage an eine Certificate Authority (CA), ein digitales Zertifikat auszustellen. Er enthält den öffentlichen Schlüssel, Identitätsinformationen und wird mit dem privaten Schlüssel signiert.

CSR-Felder

Feld Beschreibung Beispiel
CN (Common Name) Primärer Domainname example.com
O (Organization) Firmenname (bei OV/EV) My Company GmbH
OU (Organizational Unit) Abteilung IT Department
L (Locality) Stadt Berlin
ST (State/Province) Bundesland Berlin
C (Country) Ländercode (2 Buchstaben) DE
SAN (Subject Alternative Name) Weitere Domains/Subdomains www.example.com, app.example.com
Beispiele
# CSR mit OpenSSL erstellen
openssl req -new -key server.key -out server.csr
# CSR mit direktem Subject (ohne SAN)
openssl req -new -key server.key -out server.csr -subj "/C=DE/ST=Bayern/L=München/O=MyCompany/CN=example.com"
# CSR mit SAN (Konfigurationsdatei erforderlich)
openssl req -new -key server.key -out server.csr -config openssl.cnf
# CSR überprüfen
openssl req -text -noout -verify -in server.csr
Beispiel CSR (PEM):
-----BEGIN CERTIFICATE REQUEST-----
MIIClTCCAX0CAQAwWDELMAkGA1UEBhMCREUx... (base64-kodiert)
-----END CERTIFICATE REQUEST-----
Tipp: Subject Alternative Names (SAN) sind heute Pflicht. Erstellen Sie immer eine OpenSSL-Konfigurationsdatei mit subjectAltName = DNS:example.com, DNS:www.example.com oder verwenden Sie Tools wie certbot.

Zertifikatstypen – DV, OV, EV, Wildcard

Domain · Organization · Extended · Wildcard
Zertifikatstypen = DV | OV | EV | Wildcard | SAN

Zertifikatstypen unterscheiden sich im Validierungsgrad, der Anzeige im Browser und den Anforderungen an den Antragsteller.

Typen im Vergleich

Typ Validierung Browser-Anzeige Einsatz
DV (Domain Validation) Nur Domain-Kontrolle Schloss (kein Firmenname) Blogs, persönliche Seiten, Let's Encrypt
OV (Organization Validation) Domain + Organisation Schloss + Firmenname Unternehmenswebseiten, E-Commerce
EV (Extended Validation) Umfangreiche Rechtsprüfung Grüne Adressleiste + Firmenname Banken, Finanzinstitute, hohe Sicherheit
Wildcard Wie DV/OV Wie DV/OV Gilt für alle Subdomains (*.domain.com)
SAN (Subject Alternative Name) Wie DV/OV Wie DV/OV Mehrere Domains in einem Zertifikat
Beispiele
# DV-Zertifikat (Let's Encrypt)
certbot certonly --standalone -d example.com -d www.example.com
# Wildcard-Zertifikat
CN: *.example.com
Gültig für: app.example.com, api.example.com, mail.example.com
# SAN-Zertifikat (mehrere Domains)
CN: example.com
SAN: example.com, www.example.com, app.example.com, api.example.com
# EV-Zertifikat (erweiterte Validierung)
Anforderungen: Handelsregistereintrag, Telefonische Verifikation, Firmenadresse
Tipp: Für die meisten Projekte reicht ein DV-Zertifikat von Let's Encrypt. Für E-Commerce und Unternehmenswebseiten empfiehlt sich OV (Vertrauen durch Firmenname). EV wird zunehmend durch TLS-Transparency und andere Sicherheitsmaßnahmen ersetzt.

Zertifikatsketten – Chain of Trust

Root · Intermediate · Server
Root CAIntermediate CAServer-Zertifikat Die vollständige Zertifikatskette für die Validierung

Zertifikatskette (Chain of Trust) beschreibt den Vertrauenspfad vom Server-Zertifikat über eine oder mehrere Zwischen-CAs bis zur vertrauenswürdigen Root-CA im Browser/Client.

Kettenkomponenten

Komponente Beschreibung Beispiel
Root CA Selbst-signiert, in Browser/Betriebssystem vertrauenswürdig GlobalSign Root CA, DigiCert Global Root
Intermediate CA Von Root CA signiert, stellt Server-Zertifikate aus GlobalSign RSA OV SSL CA 2018
Server-Zertifikat Für die tatsächliche Domain ausgestellt CN=example.com
Beispiele
# Vollständige Kette anzeigen
openssl s_client -connect example.com:443 -showcerts
# Kette mit OpenSSL prüfen
openssl verify -CAfile root.pem -untrusted intermediate.pem server.crt
# Nginx: fullchain.pem enthält Server + Intermediate
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
# Apache: Kette separat
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateChainFile /etc/ssl/certs/intermediate.crt
# Fehler: Fehlende Intermediate-CA
openssl s_client -connect example.com:443
Fehlermeldung bei fehlender Kette:
verify error: unable to get local issuer certificate
Tipp: Viele Browser- und Betriebssystem-Updates enthalten aktualisierte Root-CAs. Wenn Ihre Zertifikatskette fehlerhaft ist, erhalten Sie Fehler wie "Zertifikat nicht vertrauenswürdig" oder "Zwischenzertifikat fehlt".

X.509-Felder – Zertifikatsinhalt

Version · Serial · Issuer · Subject · Validity
X.509 = Version + Serial + Issuer + Subject + Validity + Public Key + Extensions

X.509 ist der internationale Standard für das Format digitaler Zertifikate. Er definiert die Struktur und die enthaltenen Felder eines Zertifikats.

Wichtige Felder

Feld Beschreibung Beispiel
Version X.509-Version (meist v3) 3
Serial Number Eindeutige Nummer von der CA 01:23:45:67:89:AB:CD:EF
Signature Algorithm Algorithmus der CA-Signatur sha256WithRSAEncryption
Issuer Aussteller (CA) CN=Let's Encrypt R3, O=Let's Encrypt
Subject Besitzer des Zertifikats CN=example.com
Validity Gültigkeitszeitraum Not Before: 2025-01-01, Not After: 2026-01-01
Public Key Öffentlicher Schlüssel (RSA/ECDSA) RSA (2048 bit) oder EC (prime256v1)
Extensions Erweiterungen (SAN, Key Usage, etc.) subjectAltName = DNS:example.com
Beispiele
# Zertifikat mit OpenSSL anzeigen
openssl x509 -in server.crt -text -noout
# Nur Subject anzeigen
openssl x509 -in server.crt -subject -noout
# Gültigkeitsdauer prüfen
openssl x509 -in server.crt -startdate -enddate -noout
# Fingerprint (SHA1)
openssl x509 -in server.crt -fingerprint -noout
# Modulus (für CSR-Vergleich)
openssl x509 -in server.crt -modulus -noout | openssl md5
Tipp: Der Modulus (bei RSA) oder Public Key (bei ECDSA) muss in CSR und Zertifikat übereinstimmen. Mit openssl x509 -modulus -noout und openssl req -modulus -noout können Sie dies prüfen.

Validierung – Zertifikate prüfen

OCSP · CRL · Chain · Expiry
Prüfungen = Expiry + Chain + OCSP + CRL + Domain Match

Zertifikatsvalidierung umfasst die Prüfung des Gültigkeitszeitraums, der Zertifikatskette, des Widerrufsstatus (OCSP/CRL) und der Übereinstimmung mit der Domain.

Validierungsschritte

Schritt Beschreibung Tool
Ablauf prüfen Not Before & Not After openssl x509 -in cert.crt -startdate -enddate
Chain prüfen Root → Intermediate → Server openssl verify -CAfile root.pem -untrusted inter.pem cert.crt
OCSP-Status Online-Prüfung des Widerrufs openssl ocsp -issuer inter.pem -cert cert.crt -url http://ocsp.example.com
CRL-Status Certificate Revocation List openssl crl -in crl.pem -text -noout
Domain Match CN oder SAN enthalten Domain openssl x509 -in cert.crt -text -noout | grep -A 1 "Subject Alternative Name"
CSR-Vergleich Public Key stimmt überein openssl x509 -modulus -noout | openssl md5
Beispiele
# OCSP-Status prüfen
openssl ocsp -issuer intermediate.pem -cert server.crt -url http://ocsp.example.com -VAfile root.pem
# CRL herunterladen und prüfen
openssl crl -in crl.pem -text -noout
# Domain Match: SAN prüfen
openssl x509 -in server.crt -text -noout | grep "Subject Alternative Name" -A 1
# Ablaufdatum prüfen (Tage bis Ablauf)
echo $(( ($(date -d "$(openssl x509 -enddate -noout -in server.crt | cut -d= -f2)" +%s) - $(date +%s)) / 86400 ))
OCSP-Antwort:
Response verify OK
server.crt: good
Tipp: OCSP (Online Certificate Status Protocol) ist die bevorzugte Methode zur Widerrufsprüfung. Einige Browser verwenden auch OCSP Stapling, um die Ladezeit zu optimieren.

Tools & Praxis – Nützliche Hilfsmittel

certbot · keytool · openssl · SSL Labs
Tools = OpenSSL + Certbot + Keytool + SSL Labs

Werkzeuge für die Erstellung, Verwaltung und Überprüfung von Zertifikaten – von der Kommandozeile bis zu Web-basierten Diensten.

Wichtige Tools

Tool Beschreibung Typische Verwendung
OpenSSL Kommandozeilen-Tool für alles rund um Zertifikate CSR erstellen, Zertifikate konvertieren, prüfen
Certbot Let's Encrypt-Client (automatische Zertifikate) DV-Zertifikate kostenlos beziehen und erneuern
Keytool Java-Keytool für Keystores (JKS) Zertifikate in Java-Anwendungen importieren
SSL Labs Web-basierter SSL-Test (Qualys) Server-Konfiguration auf Sicherheit prüfen
openssl s_client TLS-Verbindung testen Zertifikat von Server abrufen, Cipher prüfen
dig +dnssec DNS-over-HTTPS / DNSSEC DNS-Einträge für DANE/TLSA prüfen
Beispiele
# Certbot: Zertifikat für Nginx
certbot --nginx -d example.com -d www.example.com
# Keytool: Zertifikat in Keystore importieren
keytool -import -alias server -file server.crt -keystore keystore.jks -storepass changeit
# SSL Labs Test (Web-basiert)
curl https://api.ssllabs.com/api/v3/analyze?host=example.com
# openssl s_client: Zertifikat von Server abrufen
openssl s_client -connect example.com:443 -showcerts 2>/dev/null | openssl x509 -out server.crt
Tipp: Nutzen Sie SSL Labs (https://www.ssllabs.com/ssltest/) für eine umfassende Sicherheitsbewertung Ihrer Server-Konfiguration. Der Test prüft Protokollversionen, Cipher Suites, Forward Secrecy und Schwachstellen.

Zertifikate & CSR im Überblick

CSR Certificate Signing Request
Antrag an CA
X.509 Zertifikatsformat
Standard v3
Chain Zertifikatskette
Root → Intermediate → Server
OCSP Widerrufsprüfung
Online Certificate Status Protocol
DV/OV/EV Validierungsgrade
Domain, Organisation, Extended
SAN Subject Alternative Name
Mehrere Domains

Quick Summary

CSR
Zertifikatsanfrage
DV/OV/EV
Zertifikatstypen
Chain
Zertifikatskette
X.509
Standardformat
OCSP
Widerrufsprüfung
certbot
Let's Encrypt
openssl req -new -key key.pem -out csr.pem · openssl x509 -in cert.crt -text -noout · certbot --nginx -d example.com