Zertifikat für admin.ekey Zugang
#Prozess: Client-Zertifikate mit eigener CA erstellen (OpenSSL)und ##Nutzer Zielberechtigen
Dieser Leitfaden beschreibt, wie manmit 1.OpenSSL eine eigene Certificate Authority (CA) erstellt (einmalig)betrieben und 2.daraus Client-Zertifikate für **jedenBenutzer neuenerstellt Nutzer** ein Client-Zertifikat erzeugt, signiert und als `.pfx` bereitstellt,werden, um z. B. eine WebsiteWebseite per mTLS (Client-Zertifikatsauthentifizierung) zugänglich zu machen.
Übersicht
- Einmalig: CA-Schlüssel und CA-Zertifikat erstellen
- Für jeden neuen Nutzer:
- privaten Schlüssel erzeugen
- CSR (Certificate Signing Request) erzeugen
- CSR mit der CA signieren → Benutzerzertifikat
- Benutzerzertifikat + Key + CA-Zertifikat als
.pfx exportieren
- Nutzer importiert
.pfx im Betriebssystem / Browser
- Webserver ist so konfiguriert, dass er:
- Client-Zertifikate verlangt
- der eigenen CA vertraut
- (
mTLS)optional) abzusichern.bestimmte ---Nutzer ##anhand des Zertifikats freischaltet
Voraussetzungen
-
- OpenSSL ist installiert (
Linux,openssl macOSauf oderder WindowsKommandozeile mitverfügbar).
OpenSSL).
- - Ein
Arbeitsverzeichnis,Verzeichnis für die CA, z. B.:
```bash
cd /CertificateAuthCA
GrundlegendeBasiskonzept:
Shell-Kenntnisse.
- CA-Dateien:
fb4ca.key, fb4ca.crt, fb4ca.srl
- Benutzer-Dateien:
<user>.key, <user>.csr, <user>.crt, <user>.pfx
1. EigeneEinmalig: eigene CA erstellen (einmalig)
Diesen AbschnittSchritt führtführst mandu nur einmal aus.
Er Dieerzeugt dabeiden erzeugteprivaten CACA-Schlüssel wirdund späterein genutzt,selbstsigniertes um alle Benutzerzertifikate zu signieren.Root-Zertifikat.
# 1.1 CA-Privatschlüssel erzeugen
openssl genrsa -des3 -out fb4ca.key 4096
- Es wird eine
PEM-Passphrase für den CA-SchlüsselKey abgefragt.
Datei: fb4ca.keyabgefragt (geheimermerken privaterund Schlüsselsicher der CA)aufbewahren).
# 1.2 Self-signed Root-CA-Zertifikat erzeugen
openssl req -new -x509 -days 3650 -key fb4ca.key -out fb4ca.crt
Gültigkeit:Wichtige 3650Felder:
Tage
Common Name (~10CN) Jahre)→ sinnvoller Name der CA, z. B. Example Internal Root CA
BeimRest Promptnach sinnvolle Angaben machenBedarf (Country,O, Organization,OU, CommonC, Name,…)
etc.).
Die Dateien:
fb4ca.key → geheimer privater Schlüssel der CA
Datei: fb4ca.crt (→ öffentliches CA-Zertifikat,Zertifikat (darf verteilt werden)
Die Dateien fb4ca.key und fb4ca.crt sind die Basis, um Nutzerzertifikate auszustellen.
2. NeuerFür jeden neuen Nutzer: Client-Zertifikat erstellenausstellen
Diese Schritte werden für jeden Benutzer wiederholt.
Im BeispielFolgenden wird der<user> Benutzernameals Platzhalter verwendet, z. B. tobiasB verwendet.oder janS.
Übersicht
Privaten Schlüssel des Benutzers erzeugen
CSR (Certificate Signing Request) erstellen
CSR mit der CA signieren → Benutzerzertifikat
.pfx (PKCS#12) erzeugen
.pfx an den Benutzer ausliefern
2.1 Privaten Schlüssel für den Nutzer erzeugen
openssl genrsa -des3 -out tobiasB.<user>.key 2048
- Es wird eine PEM-Passphrase für den
Benutzer-SchlüsselNutzer-Key abgefragt.
Datei:Diese tobiasB.keyschützt den privaten Schlüssel des Nutzers (privaterz. B. Schlüssel,„PEMPASSPHRASE geheim!TOBI“).
Beispiel:
openssl genrsa -des3 -out tobiasB.key 2048
2.2 CSR (Certificate Signing Request) erstellenfür den Nutzer erzeugen
openssl req -new -key <user>.key -out <user>.csr
- Du wirst nach diversen Angaben gefragt:
Common Name (CN) → z. B. tobias.blaeser@example.com oder Tobias Blaeser
O, OU, C etc. nach Bedarf
- Das Challenge Password kann in der Regel leer gelassen werden (einfach Enter).
Beispiel:
openssl req -new -key tobiasB.key -out tobiasB.csr
Eingabe der Subject-Daten (insbesondere Common Name (CN), z. B. Benutzername oder E-Mail).
Das „Challenge Password“ kann in der Regel leer bleiben (einfach Enter).
Datei: tobiasB.csr (Antrag auf ein Zertifikat)
2.3 CSR mit der CA signieren → BenutzerzertifikatNutzerzertifikat
ImDieser VerzeichnisSchritt derwird auf dem System ausgeführt, auf dem die CA liegt (fb4ca.key /und fb4ca.crt):.
openssl x509 -req -days 365 \
-in <user>.csr \
-CA fb4ca.crt \
-CAkey fb4ca.key \
-CAcreateserial \
-out <user>.crt \
-sha256
-days 365 → Gültigkeit des Nutzerzertifikats (hier: 1 Jahr)
-CAcreateserial → legt einmalig fb4ca.srl an und vergibt Seriennummern automatisch
Wichtig:
- Für das erste Nutzerzertifikat:
-CAcreateserial verwenden.
- Für weitere Zertifikate kann (optional)
-CAserial fb4ca.srl genutzt werden, wenn die Datei bereits existiert.
Beispiel für erstes Nutzerzertifikat:
openssl x509 -req -days 365 \
-in tobiasB.csr \
-CA fb4ca.crt \
-CAkey fb4ca.key \
-CAcreateserial \
-out tobiasB.crt \
-sha256
Beispiel Esfür wirdweiteres die Passphrase der CA abgefragt.
Gültigkeit des Benutzerzertifikats: 365 TageNutzerzertifikat (anpassbar).
-CAcreateserial erzeugt einmalig eine Seriennummer-Dateiwenn fb4ca.srl.
Für weitere Benutzer danach -CAserial fb4ca.srl statt -CAcreateserial verwenden, damit Seriennummern fortlaufend sind.
Beispiel für einen zweiten Benutzer janSexistiert):
openssl x509 -req -days 365 \
-in janS.csr \
-CA fb4ca.crt \
-CAkey fb4ca.key \
-CAserial fb4ca.srl \
-out janS.crt \
-sha256
2.4 PKCS#12-Datei (.pfx)pfx) für den Nutzer erzeugen
DamitUm derdem Benutzer dasein importierbares Paket aus Key + Zertifikat inkl.+ privatemCA Schlüsselzu einfachliefern, wird eine .pfx (PKCS#12) erstellt:
openssl pkcs12 -export \
-out <user>.pfx \
-inkey <user>.key \
-in sein<user>.crt System/den\
Browser-certfile fb4ca.crt
- Es wird das Export-Passwort für die
.pfx abgefragt.
- Dieses Passwort ist notwendig, um die
.pfx auf Clientseite zu importieren kann,(z. B. wird„EXPORT einPW PKCS#12-ContainerTOBI“).
erzeugt:
Beispiel:
openssl pkcs12 -export \
-out tobiasB.pfx \
-inkey tobiasB.key \
-in tobiasB.crt \
-certfile fb4ca.crt
Es wird ein Export-Passwort für dieDie .pfx-Datei vergeben.
Inhalt der .pfx:enthält:
privaterprivaten Schlüssel des Nutzers (tobiasB.<user>.key)
- Nutzerzertifikat (
tobiasB.<user>.crt)
- CA-Zertifikat (
fb4ca.crt)
3. Nutzung durch den Nutzer
2.53.1 ÜbergabeDateien und Passwörter an den Nutzer
Der Nutzer erhält:
- Datei:
tobiasB.<user>.pfx
- Zugehöriges Export-Passwort (für den Import)
- Optional: CA-Zertifikat
fb4ca.crt, falls es auf seinem System noch nicht vertrauenswürdig ist
3.2 Import der .pfx-Datei beim Nutzer
ImportJe durchnach den NutzerUmgebung (Beispiele):
-
Windows (Zertifikatsspeicher):
- Doppelklick auf
tobiasB.<user>.pfx → Zertifikatimport-Assistent
ZertifikatZertifikatimport-Assistent imdurchlaufen
Store- Persönlichen Zertifikatsspeicher auswählen („Eigene
ZertifikateZertifikate“ / Persönlich“ ablegen
„Personal“)
Firefox:Beim
Einstellungen → Datenschutz & Sicherheit → Zertifikate → „Zertifikate anzeigen“ → „Importieren“
Chrome/Edge (Windows):
nutzen den Windows-Zertifikatsspeicher
Zusätzlich sollteImport das CA-ZertifikatExport-Passwort fb4ca.crt auf den Client-Systemen als vertrauenswürdige Stammzertifizierungsstelle importiert werden (sofern nicht bereits vorhanden).
3. Berechtigung auf der Webseite (mTLS)
Damit ein neuer Nutzer die geschützte Webseite aufrufen darf, müssen folgende Punkte erfüllt sein:
Webserver-Konfiguration
Der Server verlangt ein Client-Zertifikat (mTLS).
Der Server vertraut der CA fb4ca.crt als ausstellende Instanz für Client-Zertifikate (z. B. über ssl_client_certificate oder SSLVerifyClient je nach Webserver).eingeben
-
Client-KonfigurationFirefox
DerEinstellungen Nutzer→ hat„Datenschutz seine& Sicherheit“ → Abschnitt „Zertifikate“
- „Zertifikate anzeigen…“ → Reiter „Ihre Zertifikate“ → „Importieren…“
<user>.pfx erfolgreichwählen, importiert. Export-Passwort Das CA-Zertifikat fb4ca.crt ist als vertrauenswürdige CA hinterlegt.eingeben
-
Chrome / Edge (Optional) ZugriffsteuerungWindows)
DerNutzen Webserverden oderWindows-Zertifikatsspeicher; Import wie unter Windows beschrieben
3.3 CA-Zertifikat vertrauen
Damit die AnwendungClient-Zertifikate prüftals zusätzlich:gültig erkannt werden, muss die CA (fb4ca.crt) als vertrauenswürdige Stammzertifizierungsstelle importiert sein (falls nicht bereits geschehen):
SubjectUnter Windows: in den Zertifikatsspeicher „Vertrauenswürdige Stammzertifizierungsstellen“
- Unter Linux/macOS/Browser: je nach System in den entsprechenden Trust Store / Schlüsselbund importieren
4. Berechtigung auf der Webseite / im Webserver
Damit ein Nutzer tatsächlich auf die geschützte Webseite zugreifen kann, muss der Webserver:
- Client-Zertifikate verlangen (mTLS-Authentifizierung):
- z. B. in Apache
CNSSLVerifyClient require) des Client-Zertifikats,
oderNginx denssl_verify_client Fingerprint,
oder andere Felder,on;
fb4ca.crt) als trusted client CA kennen:
- z. B.
WhitelistApachederSSLCACertificateFileerlaubtenfb4ca.crt - Nginx
ssl_client_certificate fb4ca.crt;
- anhand des
CNim Zertifikat - anhand von Subject Alternative Names (SAN)
- anhand des Zertifikat-Fingerprints
Die konkrete Konfiguration hängt vom eingesetzten Webserver (Apache, Nginx, IIS, …) bzw. der Anwendung ab.
4.5. Zusammenfassung: AblaufKurzablauf für einen neuen Nutzer (Cheat Sheet)
Privaten Schlüssel erzeugen
## 1) Nutzer-Key erzeugen openssl genrsa -des3 -out <user>.key 20482) CSR erzeugen
#openssl req -new -key <user>.key -out <user>.csr3) CSR mit CA signieren
Zertifikat:Erstes Benutzerzertifikat(erzeugterstesfb4ca.srl):-CAcreateserial) openssl x509 -req -days 365 \ -in <user>.csr \ -CA fb4ca.crt \ -CAkey fb4ca.key \ -CAcreateserial \ -out <user>.crt \ -sha256
optionalWeitere Benutzer# (bestehendeweitereNutzerfb4ca.srlwiederverwenden):openssl x509 -req -days 365 \ -in <user>.csr \ -CA fb4ca.crt \ -CAkey fb4ca.key \mit -CAserial fb4ca.srlsrl)\#-out4)<user>.crtPFX\für-sha256
PKCS#12-Datei (.pfx)Nutzer erzeugenopenssl pkcs12 -export \ -out <user>.pfx \ -inkey <user>.key \ -in <user>.crt \ -certfile fb4ca.crt<user>.pfx+ Export-Passwort an den Nutzerübergeben;geben- Nutzer importiert
Zertifikatdiein sein System/Browser..pfx - Webserver
Webserververtrautso konfigurieren, dass:Client-Zertifikate verlangt werden,- der CA
fb4ca.crtvertrautundwird,verlangt Client-Zertifikate optional(optional)weitereNutzerZugriffskontrolleimanhandWebserver/ApplikationdesexplizitClient-Zertifikats erfolgt.freischalten.
Danach: