Skip to main content

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

  1. Einmalig: CA-Schlüssel und CA-Zertifikat erstellen
  2. 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
  3. Nutzer importiert .pfx im Betriebssystem / Browser
  4. 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

  1. Privaten Schlüssel des Benutzers erzeugen
  2. CSR (Certificate Signing Request) erstellen
  3. CSR mit der CA signieren → Benutzerzertifikat
  4. .pfx (PKCS#12) erzeugen
  5. .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 die

    Die .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:

  1. 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
  2. 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
  3. Chrome / Edge (Optional) ZugriffsteuerungWindows)

    • DerNutzen Webserverden oderWindows-Zertifikatsspeicher; Import wie unter Windows beschrieben
  4. 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:

    1. Client-Zertifikate verlangen (mTLS-Authentifizierung):
      • z. B. in Apache CNSSLVerifyClient require) des Client-Zertifikats,
      • oderNginx denssl_verify_client Fingerprint,
      • oder andere Felder,on;
    2. undDer entscheidetWebserver darüber,muss obdie dereigene Benutzer Zugriff erhältCA (fb4ca.crt) als trusted client CA kennen:
      • z. B. WhitelistApache derSSLCACertificateFile erlaubtenfb4ca.crt
      • CNs).
      • Nginx ssl_client_certificate fb4ca.crt;
    3. Optional: Zugriffe auf bestimmte Zertifikate einschränken, z. B.:
      • anhand des CN im 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)

    1. Privaten Schlüssel erzeugen

      # 1) Nutzer-Key erzeugen
      openssl genrsa -des3 -out <user>.key 2048
      
      
      #
    2. 2)
    3. CSR erzeugen

      openssl req -new -key <user>.key -out <user>.csr
      
      
      #
    4. 3)
    5. CSR mit CA signieren

      • Erstes Benutzerzertifikat (erzeugterstes fb4ca.srl):

        Zertifikat:
        -CAcreateserial)
        openssl x509 -req -days 365 \
          -in <user>.csr \
          -CA fb4ca.crt \
          -CAkey fb4ca.key \
          -CAcreateserial \
          -out <user>.crt \
          -sha256
        
        
      • Weitere Benutzer# (bestehendeweitere fb4ca.srlNutzer wiederverwenden):

        optional
        openssl x509 -req -days 365 \
          -in <user>.csr \
          -CA fb4ca.crt \
          -CAkey fb4ca.key \mit -CAserial fb4ca.srlsrl)
        
        \# -out4) <user>.crtPFX \für -sha256
        
    6. PKCS#12-Datei (.pfx)Nutzer erzeugen

      openssl pkcs12 -export \
        -out <user>.pfx \
        -inkey <user>.key \
        -in <user>.crt \
        -certfile fb4ca.crt
      
    7. Danach:

      • <user>.pfx + Export-Passwort an den Nutzer übergeben;geben

      • Nutzer importiert Zertifikatdie in sein System/Browser.

        .pfx
      • Webserver

        Webserververtraut so konfigurieren, dass:

        • Client-Zertifikate verlangt werden,
        • der CA fb4ca.crt vertrautund wird,verlangt Client-Zertifikate
        • optional(optional) weitereNutzer Zugriffskontrolleim anhandWebserver/Applikation desexplizit Client-Zertifikats erfolgt.freischalten.