Root- und Intermediate-CA
CA-Hierarchie mit OpenSSL erstellen, prüfen und in AD-PKI importieren.
AD-PKI benötigt ein Root-CA-Zertifikat sowie ein Intermediate-CA-Zertifikat mit zugehörigem privaten Schlüssel. Die folgende Referenz erstellt eine einfache zweistufige Hierarchie mit OpenSSL.
⚠️ Die Root-CA ist der zentrale Vertrauensanker. Für produktive Umgebungen sollte ihr privater Schlüssel offline, verschlüsselt und mit einem dokumentierten Wiederherstellungsverfahren verwahrt werden. Die gezeigte Erstellung auf dem AD-PKI-Server eignet sich primär für Tests und kontrollierte interne Umgebungen.
1. Verzeichnisstruktur
Verzeichnisse anlegen:
mkdir -p ~/pki/{root,intermediate}
mkdir -p ~/pki/root/{certs,crl,newcerts,private,csr}
mkdir -p ~/pki/intermediate/{certs,crl,newcerts,private,csr}
CA-Datenbank initialisieren:
chmod 700 ~/pki/root/private ~/pki/intermediate/private
touch ~/pki/root/index.txt ~/pki/intermediate/index.txt
echo 1000 > ~/pki/root/serial
echo 1000 > ~/pki/intermediate/serial
echo 1000 > ~/pki/intermediate/crlnumber

2. Root-CA erstellen
Empfohlen mit Passphrase:
openssl genrsa -aes256 -out ~/pki/root/private/root-ca.key.pem 4096
chmod 400 ~/pki/root/private/root-ca.key.pem
Für reine Testumgebungen ohne Passphrase:
openssl genrsa -out ~/pki/root/private/root-ca.key.pem 4096
chmod 400 ~/pki/root/private/root-ca.key.pem
Zertifikat erzeugen:
openssl req -x509 -new \
-key ~/pki/root/private/root-ca.key.pem \
-sha256 \
-days 3650 \
-addext "basicConstraints=critical,CA:TRUE" \
-addext "keyUsage=critical,keyCertSign,cRLSign" \
-addext "subjectKeyIdentifier=hash" \
-out ~/pki/root/certs/root-ca.cert.pem
chmod 444 ~/pki/root/certs/root-ca.cert.pem
Verwende einen eindeutigen Common Name, beispielsweise Example Internal Root CA.

Prüfe die CA-Eigenschaft:
openssl x509 -noout -text -in ~/pki/root/certs/root-ca.cert.pem
Die Ausgabe muss CA:TRUE enthalten.

3. Intermediate-CA erstellen
Empfohlen mit Passphrase:
openssl genrsa -aes256 -out ~/pki/intermediate/private/intermediate-ca.key.pem 4096
chmod 400 ~/pki/intermediate/private/intermediate-ca.key.pem
Für reine Testumgebungen ohne Passphrase:
openssl genrsa -out ~/pki/intermediate/private/intermediate-ca.key.pem 4096
chmod 400 ~/pki/intermediate/private/intermediate-ca.key.pem
CSR erzeugen:
openssl req -new \
-key ~/pki/intermediate/private/intermediate-ca.key.pem \
-out ~/pki/intermediate/csr/intermediate-ca.csr.pem

Erweiterungsdatei anlegen:
cat > ~/pki/intermediate/intermediate.ext <<'EOF'
basicConstraints = critical, CA:true, pathlen:0
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
EOF
Intermediate-Zertifikat mit der Root-CA signieren:
openssl x509 -req \
-in ~/pki/intermediate/csr/intermediate-ca.csr.pem \
-CA ~/pki/root/certs/root-ca.cert.pem \
-CAkey ~/pki/root/private/root-ca.key.pem \
-CAcreateserial \
-out ~/pki/intermediate/certs/intermediate-ca.cert.pem \
-days 1825 \
-sha256 \
-extfile ~/pki/intermediate/intermediate.ext
chmod 444 ~/pki/intermediate/certs/intermediate-ca.cert.pem

Prüfe die CA-Eigenschaft:
openssl x509 -noout -text -in ~/pki/intermediate/certs/intermediate-ca.cert.pem
Das Zertifikat muss CA:TRUE, pathlen:0 enthalten.

4. Zertifikatskette validieren
openssl verify \
-CAfile ~/pki/root/certs/root-ca.cert.pem \
~/pki/intermediate/certs/intermediate-ca.cert.pem
Die erwartete Ausgabe endet mit OK.

Diese drei Dateien werden später im Setup verwendet:
~/pki/root/certs/root-ca.cert.pem
~/pki/intermediate/certs/intermediate-ca.cert.pem
~/pki/intermediate/private/intermediate-ca.key.pem