Zertifikatsverwaltung via privacyIDEA: Unterschied zwischen den Versionen
Ansp (Diskussion | Beiträge) Die Seite wurde neu angelegt: „==='''Symptom'''=== Es wird eine einfache Lösung für die Zertifikatsverwaltung und Rollout gesucht. ==='''Ursache und Lösung'''=== PrivacyIDEA kann mittlerw…“ |
imported>TechCorner-Redaktion Aktualisierung 10/2026: pi-manage config ca (ab 3.10), openssl -noenc statt Python-2.7-Pfad, MS-CA, Rollout-Wege, CRL-Cronjob, Link auf privacyIDEA-Hauptartikel |
||
| (5 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
=== | {{Steckbrief | ||
| gilt_fuer = privacyIDEA ab 3.10 (getestet mit 3.13/3.14), lokale OpenSSL-CA oder Microsoft-CA | |||
| bereich = IT-Security | |||
| dauer = ca. 20 Minuten | |||
| rechte = root / privacyIDEA-Admin | |||
| stand = Oktober 2026 | |||
}} | |||
Mit der '''Zertifikatsverwaltung via privacyIDEA''' lassen sich Benutzerzertifikate genauso ausrollen und verwalten wie andere zweite Faktoren: Ein Zertifikat ist in privacyIDEA ein Token vom Typ ''certificate'', das einem Benutzer zugeordnet, gesperrt und widerrufen werden kann. privacyIDEA signiert die Zertifikate dabei nicht selbst, sondern bindet über '''CA-Konnektoren''' eine lokale OpenSSL-CA oder eine vorhandene Microsoft-CA an. Typische Einsatzzwecke sind Client-Zertifikate für WLAN (EAP-TLS), VPN oder die Anmeldung an Webanwendungen. | |||
openssl req -days 3650 - | Einen Überblick über privacyIDEA insgesamt – Token-Typen, Installation und Anbindungen – gibt der Artikel [[PrivacyIDEA – Open-Source-Mehr-Faktor-Authentifizierung|privacyIDEA – Open-Source-Mehr-Faktor-Authentifizierung]]. | ||
{{Hinweis|Frühere Versionen dieses Artikels kopierten die <code>openssl.cnf</code> aus einem Python-2.7-Pfad der privacyIDEA-Installation. Das ist überholt: Bei Paketinstallationen liegt eine Beispiel-<code>openssl.cnf</code> bereits unter <code>/etc/privacyidea/CA/</code>, und seit Version 3.10 lautet der Verwaltungsbefehl <code>pi-manage config ca …</code> (vorher <code>pi-manage ca …</code>).}} | |||
== Variante 1: Lokale CA mit pi-manage einrichten (empfohlen) == | |||
Der einfachste Weg ist der Assistent von <code>pi-manage</code>. Er legt die CA-Dateien an und erzeugt gleichzeitig den passenden CA-Konnektor in privacyIDEA: | |||
<syntaxhighlight lang="bash"> | |||
pi-manage config ca create firmen-ca | |||
</syntaxhighlight> | |||
Der Assistent fragt nacheinander ab: | |||
* Verzeichnis der CA (z. B. <code>/etc/privacyidea/CA/firmen-ca</code>), | |||
* Schlüssellänge (2048, 4096 oder 8192 Bit – empfohlen: '''4096'''), | |||
* Gültigkeit des CA-Zertifikats in Tagen, | |||
* Distinguished Name der CA (z. B. <code>/CN=Firmen-CA/O=Beispiel GmbH/C=DE</code>), | |||
* Gültigkeit der Sperrliste (CRL) und Überlappungszeitraum. | |||
Anschließend die Konnektoren prüfen: | |||
<syntaxhighlight lang="bash"> | |||
pi-manage config ca list -v | |||
</syntaxhighlight> | |||
== Variante 2: Lokale CA manuell anlegen == | |||
Wer die CA-Parameter selbst steuern möchte, passt zunächst <code>/etc/privacyidea/CA/openssl.cnf</code> an und erzeugt dann CA-Schlüssel und -Zertifikat: | |||
<syntaxhighlight lang="bash"> | |||
cd /etc/privacyidea/CA | |||
openssl req -x509 -new -newkey rsa:4096 -sha256 -days 3650 -noenc \ | |||
-keyout /etc/privacyidea/CA/ca.key \ | |||
-out /etc/privacyidea/CA/ca.crt \ | -out /etc/privacyidea/CA/ca.crt \ | ||
-config /etc/privacyidea/CA/openssl.cnf | -config /etc/privacyidea/CA/openssl.cnf | ||
touch /etc/privacyidea/CA/index.txt | touch /etc/privacyidea/CA/index.txt | ||
echo 01 > /etc/privacyidea/CA/serial | echo 01 > /etc/privacyidea/CA/serial | ||
chown -R privacyidea /etc/privacyidea/CA | chown -R privacyidea /etc/privacyidea/CA | ||
chmod 0600 /etc/privacyidea/CA/ca.key | chmod 0600 /etc/privacyidea/CA/ca.key | ||
</ | </syntaxhighlight> | ||
Der Schalter <code>-noenc</code> (früher <code>-nodes</code>) erzeugt den CA-Schlüssel ohne Passphrase – privacyIDEA muss ihn ohne Rückfrage verwenden können. Der Umweg über <code>openssl rsa</code> zum Entfernen der Passphrase entfällt damit. Umso wichtiger sind die restriktiven Dateirechte und ein geschützter Server. | |||
===''' | Danach in der privacyIDEA-Oberfläche unter '''Konfiguration → CA-Konnektoren''' einen neuen Konnektor vom Typ ''local'' mit dem Verzeichnis <code>/etc/privacyidea/CA</code> und den Dateien <code>ca.key</code>, <code>ca.crt</code> und <code>openssl.cnf</code> anlegen. | ||
== | {{Hinweis|Die mitgelieferte Konfiguration ist ein Beispiel. Für eine produktive Unternehmens-[[PKI]] sollten Struktur (Root- und Sub-CA), Laufzeiten, Sperrlisten-Verteilung (CDP) und Schlüsselschutz bewusst geplant werden.}} | ||
=== Zertifikatsvorlagen === | |||
Die lokale CA unterstützt einfache Vorlagen: Kombinationen aus X.509-Erweiterungen (Abschnitte der <code>openssl.cnf</code>) und Gültigkeitsdauer. Sie werden in einer YAML-Datei definiert, deren Pfad im CA-Konnektor hinterlegt wird: | |||
<syntaxhighlight lang="yaml"> | |||
user: | |||
days: 365 | |||
extensions: "user" | |||
webserver: | |||
days: 750 | |||
extensions: "server" | |||
</syntaxhighlight> | |||
== Variante 3: Microsoft-CA anbinden == | |||
In Windows-Domänen kann privacyIDEA Zertifikate auch von einer vorhandenen '''Microsoft-Zertifizierungsstelle (AD CS)''' signieren lassen. Dazu wird auf einem Windows-Server der Domäne der ''privacyIDEA MS CA Worker'' installiert; privacyIDEA verbindet sich mit ihm (in Produktion immer per TLS mit Client-Zertifikat): | |||
<syntaxhighlight lang="bash"> | |||
pi-manage config ca create -t microsoft ms-ca | |||
</syntaxhighlight> | |||
Erfordert die CA eine manuelle Freigabe, steht das Token zunächst im Zustand ''pending''. Über einen Event Handler (Ereignis <code>token_init</code>, Bedingung <code>rollout_state=pending</code>) kann privacyIDEA den Benutzer automatisch per E-Mail informieren. | |||
== Zertifikate ausrollen == | |||
Ist ein CA-Konnektor eingerichtet, wird ein Zertifikat wie jedes andere Token über '''Token ausrollen → Zertifikat''' erzeugt. Dabei gibt es drei Wege: | |||
# '''CSR hochladen:''' Der Benutzer erzeugt Schlüssel und Zertifikatsanforderung selbst (der private Schlüssel verlässt sein Gerät nie) und lädt den CSR hoch. | |||
# '''CSR auf dem Server erzeugen:''' privacyIDEA erzeugt Schlüsselpaar und Anforderung. Der Benutzer lädt anschließend ein verschlüsseltes '''PKCS#12'''-Paket herunter – geschützt mit der Token-PIN bzw. einem einmalig angezeigten Zufallspasswort. | |||
# '''Vorhandenes Zertifikat hochladen''', um es einem Benutzer zuzuordnen. | |||
Idealerweise rollen Benutzer ihre Zertifikate selbst über das Self-Service-Portal aus. Wird für die Anmeldung am Portal ein zweiter Faktor verlangt (Richtlinie ''login_mode''), ist auch die Zertifikatsausstellung durch MFA abgesichert. | |||
== Widerruf und Sperrlisten (CRL) == | |||
Widerruft ein Administrator ein Zertifikats-Token, wird das Zertifikat gesperrt und eine neue CRL erzeugt. privacyIDEA erneuert die CRL jedoch '''nicht automatisch regelmäßig''' – sie ist typischerweise 30 Tage gültig. Daher einen Cronjob einrichten: | |||
<syntaxhighlight lang="bash"> | |||
# /etc/cron.d/privacyidea-crl – täglich prüfen, ob eine neue CRL fällig ist | |||
0 3 * * * privacyidea pi-manage config ca create_crl firmen-ca | |||
</syntaxhighlight> | |||
Der Befehl erzeugt nur dann eine neue CRL, wenn der Überlappungszeitraum erreicht ist; mit <code>-f</code> lässt sich die Erstellung erzwingen. Die CRL muss anschließend dort bereitgestellt werden, wo die prüfenden Systeme sie abrufen (z. B. RADIUS-Server oder Firewall). | |||
== Unterstützung von m.a.x. it == | |||
Bei Zertifikats- und Identity-Management mit privacyIDEA – vom Aufbau der CA bis zum Zertifikats-Rollout für WLAN und VPN – unterstützt Sie m.a.x. it mit [https://www.max-it.de/it-services/cybersecurity/ Cybersecurity-Services von m.a.x. it]. | |||
== Siehe auch == | |||
* [[PrivacyIDEA – Open-Source-Mehr-Faktor-Authentifizierung|privacyIDEA – Open-Source-Mehr-Faktor-Authentifizierung]] | |||
* [[OPNsense - WLAN-Authentifizierung mittels EAP-TLS]] | |||
* [[OPNsense - Radius]] | |||
* [[PKI]] | |||
== Links und Quellen == | |||
* [https://privacyidea.readthedocs.io/en/latest/configuration/caconnectors.html privacyIDEA-Doku – CA-Konnektoren] | |||
* [https://privacyidea.readthedocs.io/ privacyIDEA – offizielle Dokumentation] | |||
* [https://www.max-it.de/it-services/cybersecurity/ m.a.x. it – Cybersecurity-Services] | |||
{{Uebermax}} | |||
[[Kategorie:IT-Security]] | |||
Aktuelle Version vom 5. Oktober 2026, 00:00 Uhr
Auf einen Blick
| Gilt für | privacyIDEA ab 3.10 (getestet mit 3.13/3.14), lokale OpenSSL-CA oder Microsoft-CA |
|---|---|
| Bereich | IT-Security |
| Dauer | ca. 20 Minuten |
| Rechte | root / privacyIDEA-Admin |
| Stand | Oktober 2026 |
Mit der Zertifikatsverwaltung via privacyIDEA lassen sich Benutzerzertifikate genauso ausrollen und verwalten wie andere zweite Faktoren: Ein Zertifikat ist in privacyIDEA ein Token vom Typ certificate, das einem Benutzer zugeordnet, gesperrt und widerrufen werden kann. privacyIDEA signiert die Zertifikate dabei nicht selbst, sondern bindet über CA-Konnektoren eine lokale OpenSSL-CA oder eine vorhandene Microsoft-CA an. Typische Einsatzzwecke sind Client-Zertifikate für WLAN (EAP-TLS), VPN oder die Anmeldung an Webanwendungen.
Einen Überblick über privacyIDEA insgesamt – Token-Typen, Installation und Anbindungen – gibt der Artikel privacyIDEA – Open-Source-Mehr-Faktor-Authentifizierung.
openssl.cnf aus einem Python-2.7-Pfad der privacyIDEA-Installation. Das ist überholt: Bei Paketinstallationen liegt eine Beispiel-openssl.cnf bereits unter /etc/privacyidea/CA/, und seit Version 3.10 lautet der Verwaltungsbefehl pi-manage config ca … (vorher pi-manage ca …).Variante 1: Lokale CA mit pi-manage einrichten (empfohlen)
Der einfachste Weg ist der Assistent von pi-manage. Er legt die CA-Dateien an und erzeugt gleichzeitig den passenden CA-Konnektor in privacyIDEA:
pi-manage config ca create firmen-ca
Der Assistent fragt nacheinander ab:
- Verzeichnis der CA (z. B.
/etc/privacyidea/CA/firmen-ca), - Schlüssellänge (2048, 4096 oder 8192 Bit – empfohlen: 4096),
- Gültigkeit des CA-Zertifikats in Tagen,
- Distinguished Name der CA (z. B.
/CN=Firmen-CA/O=Beispiel GmbH/C=DE), - Gültigkeit der Sperrliste (CRL) und Überlappungszeitraum.
Anschließend die Konnektoren prüfen:
pi-manage config ca list -v
Variante 2: Lokale CA manuell anlegen
Wer die CA-Parameter selbst steuern möchte, passt zunächst /etc/privacyidea/CA/openssl.cnf an und erzeugt dann CA-Schlüssel und -Zertifikat:
cd /etc/privacyidea/CA
openssl req -x509 -new -newkey rsa:4096 -sha256 -days 3650 -noenc \
-keyout /etc/privacyidea/CA/ca.key \
-out /etc/privacyidea/CA/ca.crt \
-config /etc/privacyidea/CA/openssl.cnf
touch /etc/privacyidea/CA/index.txt
echo 01 > /etc/privacyidea/CA/serial
chown -R privacyidea /etc/privacyidea/CA
chmod 0600 /etc/privacyidea/CA/ca.key
Der Schalter -noenc (früher -nodes) erzeugt den CA-Schlüssel ohne Passphrase – privacyIDEA muss ihn ohne Rückfrage verwenden können. Der Umweg über openssl rsa zum Entfernen der Passphrase entfällt damit. Umso wichtiger sind die restriktiven Dateirechte und ein geschützter Server.
Danach in der privacyIDEA-Oberfläche unter Konfiguration → CA-Konnektoren einen neuen Konnektor vom Typ local mit dem Verzeichnis /etc/privacyidea/CA und den Dateien ca.key, ca.crt und openssl.cnf anlegen.
Zertifikatsvorlagen
Die lokale CA unterstützt einfache Vorlagen: Kombinationen aus X.509-Erweiterungen (Abschnitte der openssl.cnf) und Gültigkeitsdauer. Sie werden in einer YAML-Datei definiert, deren Pfad im CA-Konnektor hinterlegt wird:
user:
days: 365
extensions: "user"
webserver:
days: 750
extensions: "server"
Variante 3: Microsoft-CA anbinden
In Windows-Domänen kann privacyIDEA Zertifikate auch von einer vorhandenen Microsoft-Zertifizierungsstelle (AD CS) signieren lassen. Dazu wird auf einem Windows-Server der Domäne der privacyIDEA MS CA Worker installiert; privacyIDEA verbindet sich mit ihm (in Produktion immer per TLS mit Client-Zertifikat):
pi-manage config ca create -t microsoft ms-ca
Erfordert die CA eine manuelle Freigabe, steht das Token zunächst im Zustand pending. Über einen Event Handler (Ereignis token_init, Bedingung rollout_state=pending) kann privacyIDEA den Benutzer automatisch per E-Mail informieren.
Zertifikate ausrollen
Ist ein CA-Konnektor eingerichtet, wird ein Zertifikat wie jedes andere Token über Token ausrollen → Zertifikat erzeugt. Dabei gibt es drei Wege:
- CSR hochladen: Der Benutzer erzeugt Schlüssel und Zertifikatsanforderung selbst (der private Schlüssel verlässt sein Gerät nie) und lädt den CSR hoch.
- CSR auf dem Server erzeugen: privacyIDEA erzeugt Schlüsselpaar und Anforderung. Der Benutzer lädt anschließend ein verschlüsseltes PKCS#12-Paket herunter – geschützt mit der Token-PIN bzw. einem einmalig angezeigten Zufallspasswort.
- Vorhandenes Zertifikat hochladen, um es einem Benutzer zuzuordnen.
Idealerweise rollen Benutzer ihre Zertifikate selbst über das Self-Service-Portal aus. Wird für die Anmeldung am Portal ein zweiter Faktor verlangt (Richtlinie login_mode), ist auch die Zertifikatsausstellung durch MFA abgesichert.
Widerruf und Sperrlisten (CRL)
Widerruft ein Administrator ein Zertifikats-Token, wird das Zertifikat gesperrt und eine neue CRL erzeugt. privacyIDEA erneuert die CRL jedoch nicht automatisch regelmäßig – sie ist typischerweise 30 Tage gültig. Daher einen Cronjob einrichten:
# /etc/cron.d/privacyidea-crl – täglich prüfen, ob eine neue CRL fällig ist
0 3 * * * privacyidea pi-manage config ca create_crl firmen-ca
Der Befehl erzeugt nur dann eine neue CRL, wenn der Überlappungszeitraum erreicht ist; mit -f lässt sich die Erstellung erzwingen. Die CRL muss anschließend dort bereitgestellt werden, wo die prüfenden Systeme sie abrufen (z. B. RADIUS-Server oder Firewall).
Unterstützung von m.a.x. it
Bei Zertifikats- und Identity-Management mit privacyIDEA – vom Aufbau der CA bis zum Zertifikats-Rollout für WLAN und VPN – unterstützt Sie m.a.x. it mit Cybersecurity-Services von m.a.x. it.
Siehe auch
- privacyIDEA – Open-Source-Mehr-Faktor-Authentifizierung
- OPNsense - WLAN-Authentifizierung mittels EAP-TLS
- OPNsense - Radius
- PKI
Links und Quellen
- privacyIDEA-Doku – CA-Konnektoren
- privacyIDEA – offizielle Dokumentation
- m.a.x. it – Cybersecurity-Services
Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung?
