Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:certificates [2023/01/23 15:48] – [9. zweites Bean auskommentieren] + config snippet Silke Meyer | de:certificates [2025/08/27 11:09] (aktuell) – [Informationen für Service Provider] Andreas Borm | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
Bei der SAML-basierten Kommunikation zwischen IdP und SP werden Zertifikate zur Signatur-Validierung sowie zum Verschlüsseln eingesetzt. Diese Zertifikate müssen für die betreffende Entity in der [[de: | Bei der SAML-basierten Kommunikation zwischen IdP und SP werden Zertifikate zur Signatur-Validierung sowie zum Verschlüsseln eingesetzt. Diese Zertifikate müssen für die betreffende Entity in der [[de: | ||
+ | Bei unseren Vorgaben bzgl. Signaturalgorithmus und Schlüssellänge richten wir uns nach dem Empfehlungen des BSI ([[https:// | ||
<callout color="# | <callout color="# | ||
**Generell gilt:** Entities mit ungültigen, | **Generell gilt:** Entities mit ungültigen, | ||
</ | </ | ||
+ | |||
+ | \\ | ||
==== Informationen für Identity Provider / Attribute Authorities ==== | ==== Informationen für Identity Provider / Attribute Authorities ==== | ||
Siehe unter [[de: | Siehe unter [[de: | ||
+ | |||
+ | \\ | ||
==== Informationen für Service Provider ==== | ==== Informationen für Service Provider ==== | ||
Unabhängig davon, welche der u.g. Varianten zum Einsatz kommen, müssen das für die SAML-basierte Kommunikation verwendete Zertifikat und der zugehörige Private Key in der SP-Konfiguration hinterlegt werden. Beim Shibboleth SP ist dies das Element '' | Unabhängig davon, welche der u.g. Varianten zum Einsatz kommen, müssen das für die SAML-basierte Kommunikation verwendete Zertifikat und der zugehörige Private Key in der SP-Konfiguration hinterlegt werden. Beim Shibboleth SP ist dies das Element '' | ||
+ | \\ | ||
=== Zertifikate der DFN-PKI bzw. DFN-Verein Community PKI=== | === Zertifikate der DFN-PKI bzw. DFN-Verein Community PKI=== | ||
- | Für die SAML-basierte Kommunikation empfehlen sich **3 Jahre gültige Zertifikate aus der [[https:// | + | Für die SAML-basierte Kommunikation empfehlen sich **39 Monate |
Wenn Sie berechtigt sind, Zertifikate von der DFN-PKI zu beantragen, wählen Sie bei der Beantragung bitte das Profil " | Wenn Sie berechtigt sind, Zertifikate von der DFN-PKI zu beantragen, wählen Sie bei der Beantragung bitte das Profil " | ||
+ | |||
+ | \\ | ||
=== Eigene/ | === Eigene/ | ||
Für Zertifikate aus einer eigenen/ | Für Zertifikate aus einer eigenen/ | ||
+ | |||
+ | \\ | ||
=== Selbst-signierte Zertifikate === | === Selbst-signierte Zertifikate === | ||
- | Die dritte Möglichkeit ist die Verwendung von selbst-signierten Zertifikaten mit einer Gültigkeitsdauer von maximal 39 Monaten. Wir empfehlen zur korrekten Erstellung die Dokumentation der [[https://www.switch.ch/ | + | Die dritte Möglichkeit ist die Verwendung von selbst-signierten Zertifikaten mit einer Gültigkeitsdauer von **maximal 39 Monaten**. Wir empfehlen zur korrekten Erstellung die Dokumentation der [[https://help.switch.ch/ |
+ | |||
+ | \\ | ||
=== Zertifikate gängiger Zertifizierungsstellen === | === Zertifikate gängiger Zertifizierungsstellen === | ||
Zeile 32: | Zeile 44: | ||
Eine Ausnahme von den o.g. Regeln gilt bei SPs, die bereits in anderen Föderationen (mit anderen Zertifikats-Policies) registriert sind. In diesem Fall können die dort verwendeten Zertifikate auch für die DFN-AAI genutzt werden, auch wenn diese länger gültig sind. | Eine Ausnahme von den o.g. Regeln gilt bei SPs, die bereits in anderen Föderationen (mit anderen Zertifikats-Policies) registriert sind. In diesem Fall können die dort verwendeten Zertifikate auch für die DFN-AAI genutzt werden, auch wenn diese länger gültig sind. | ||
</ | </ | ||
+ | | ||
+ | \\ | ||
+ | | ||
+ | === Vorsicht bei der Verwendung von Wildcard-Zertifikaten! === | ||
+ | Da Wildcard-Zertifikate für eine ganze Subdomain gelten und daher für mehrere Entities gleichzeitig verwendet werden können, ist der potentielle Schaden bei einer Kompromittierung des privaten Schlüssels deutlich höher als bei Zertifikaten für genau spezifizierte FQDNs. Daher sollten Wildcard-Zertifikate in der DFN-AAI nur verwendet werden, wenn das Einsatzszenario dies technisch erzwingt. Beispielsweise existieren insbesondere im Bibliotheksumfeld Softwaresysteme, | ||
+ | Ein und dasselbe Wildcard-Zertifikat sollte nicht auf verschiedenen Servern mit unterschiedlichen Diensten, Einsatzzwecken oder Schutzklassen verwendet werden. Aufgrund des höheren Schadenspotentials bei Kompromittierung sind Wildcard-Zertifikate kein probates Mittel der Arbeitsersparnis bei der Beantragung und dem Deployment von Zertifikaten. | ||
+ | \\ | ||
+ | Wildcard-Zertifikat werden in der DFN-AAI daher nur unterhalb von Sub-Domains oder Second-Level-Domains akzeptiert, die ausschließlich für einen klar abgegrenzten Zweck genutzt werden, also beispielsweise entweder für ''" | ||
- | === Keine Wildcard-Zertifikate === | + | \\ |
- | Die Nutzung von Wildcards in Zertifikaten ist nur in begründeten Ausnahmefällen gestattet. | + | |
=== Keine Letsencrypt-Zertifikate === | === Keine Letsencrypt-Zertifikate === | ||
Für die Signierung und Verschlüsselung der SAML-Komunikation raten wir dringend von Letsenycrpt-Zertifikaten ab, da diese nur eine Gültigkeit von 90 Tagen haben. Ein Zertifikats-Rollover müsste jedes Mal manuell in der Metadatenverwaltung erfolgen. Auch die SP-Konfiguration muss beim Rollover 2x geändert werden. Wir empfehlen daher den Einsatz selbst-signierter Zertifikate oder solcher aus der DFN-Verein Community PKI (siehe oben). | Für die Signierung und Verschlüsselung der SAML-Komunikation raten wir dringend von Letsenycrpt-Zertifikaten ab, da diese nur eine Gültigkeit von 90 Tagen haben. Ein Zertifikats-Rollover müsste jedes Mal manuell in der Metadatenverwaltung erfolgen. Auch die SP-Konfiguration muss beim Rollover 2x geändert werden. Wir empfehlen daher den Einsatz selbst-signierter Zertifikate oder solcher aus der DFN-Verein Community PKI (siehe oben). | ||
+ | |||
+ | \\ | ||
**Nächster Schritt:** [[de: | **Nächster Schritt:** [[de: | ||
Zeile 45: | Zeile 65: | ||
Vielen Dank an die Schweizer Kolleg*innen für die ausführliche englischsprachige [[https:// | Vielen Dank an die Schweizer Kolleg*innen für die ausführliche englischsprachige [[https:// | ||
- | Wenn Sie ablaufende Zertifikate auf Ihrem AAI-Systemen austauschen müssen, gehen Sie wie folgt vor: | + | Wenn Sie ablaufende Zertifikate auf Ihren AAI-Systemen austauschen müssen, gehen Sie wie folgt vor: |
==== 1. Was muss getauscht werden? ==== | ==== 1. Was muss getauscht werden? ==== | ||
Zeile 51: | Zeile 71: | ||
Stellen Sie fest, ob es um die Webserver-Zertifikate oder um die Zertifikate für die SAML-basierte Kommunikation geht. Das kann, muss aber nicht dasselbe Zertifikat sein. | Stellen Sie fest, ob es um die Webserver-Zertifikate oder um die Zertifikate für die SAML-basierte Kommunikation geht. Das kann, muss aber nicht dasselbe Zertifikat sein. | ||
- | ==== 2. Beschaffung/ | + | ==== 2. Beschaffung eines neuen Zertifikates ==== |
- | === DFN-PKI === | + | siehe oben |
- | Bei Fragen zur Erstellung von privaten Schlüsseln und Zertifikatsanträgen, | + | |
- | * Sie können Ihren alten privaten Schlüssel weiterverwenden, | ||
- | user@host: | ||
- | </ | ||
- | * Erstellen Sie einen Zertifikatsantrag (Certificate Signing Request, csr):< | ||
- | user@host: | ||
- | # Sie werden Folgendes abgefragt, evtl. befüllt mit Vorgaben aus Ihrer / | ||
- | Country Name (2 letter code) [DE]: | ||
- | State or Province Name (full name) []: <== Bundesland | ||
- | Locality Name (eg, city) []: <== Stadt | ||
- | Organization Name (eg, company) []: < | ||
- | Organizational Unit Name (eg, section) []: <== ggf. Abteilung o.ä. | ||
- | Common Name (eg, YOUR name) []: | ||
- | A challenge password []: | ||
- | An optional company name []: | ||
- | </ | ||
- | * Geben Sie diesen Zertifikatsantrag im .pem-Format bei der DFN-PKI ein. Wählen Sie das Profil " | ||
- | * Sie bekommen Ihr neues Zertifikat per E-Mail von der DFN-PKI. | ||
- | |||
- | === Sonstige Zertifizierungsstellen bzw. CAs === | ||
- | Konsultieren Sie hierzu die Dokumentation des [[# | ||
- | |||
- | === Selbst-signierte Zertifikate === | ||
- | Selbst-signierte Zertifikate sind ausschließlich für die SAML-basierte Kommunikation geeignet! Sowohl Shibboleth IdP als auch Shibboleth SP werden mit einem '' | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | * [[https:// | ||
==== 3. Ggf. Zertifikat am Webserver tauschen ==== | ==== 3. Ggf. Zertifikat am Webserver tauschen ==== | ||
* Ersetzen Sie die alten, in der Webserverkonfiguration eingetragenen Dateien durch das neue Zertifikat, den privaten Schlüssel und die Zertifikatskette. (Unten auf dieser Seite ist erklärt, wie Sie die [[https:// | * Ersetzen Sie die alten, in der Webserverkonfiguration eingetragenen Dateien durch das neue Zertifikat, den privaten Schlüssel und die Zertifikatskette. (Unten auf dieser Seite ist erklärt, wie Sie die [[https:// | ||
* Starten Sie den Webserver neu. | * Starten Sie den Webserver neu. | ||
+ | * Falls Sie für die SAML-Kommunikation ein anderes Zertifikat als für den Webserver verwenden (vgl. [[https:// | ||
==== 4. Zertifikatswechsel auf dem IdP ==== | ==== 4. Zertifikatswechsel auf dem IdP ==== | ||
* Editieren Sie die Datei '' | * Editieren Sie die Datei '' | ||
Zeile 97: | Zeile 90: | ||
p: | p: | ||
</ | </ | ||
+ | * **ab IdP Version 4.3**: Editieren Sie die Datei '' | ||
+ | For key rollover, uncomment and point to your original keypair, and use the one above | ||
+ | to point to your new keypair. Once metadata has propagated, comment this one out again. | ||
+ | --> | ||
+ | |||
+ | <bean parent=" | ||
+ | p: | ||
+ | p: | ||
+ | p: | ||
+ | </ | ||
==== 5. zweites Zertifikat für SAML-Kommunikation eintragen ==== | ==== 5. zweites Zertifikat für SAML-Kommunikation eintragen ==== | ||
Zeile 111: | Zeile 113: | ||
==== 6. Zertifikat für SAML-Kommunikation in Metadatenverwaltung eintragen ==== | ==== 6. Zertifikat für SAML-Kommunikation in Metadatenverwaltung eintragen ==== | ||
+ | |||
+ | * Ein unterbrechungsfreier Betrieb ist nur möglich, wenn alle Service Provider weiterhin mit dem IdP kommunizieren können. Die SPs müssen sich vorab das neue Zertifikat aus den aktualisierten Föderationsmetadaten geholt haben. Besonders, wenn Sie an eduGAIN teilnehmen, müssen Sie davon ausgehen, dass manche SPs dies nur einmal pro Tag tun. | ||
+ | * Wenn Sie bei der Erstellung des Zertifikatsantrags denselben privaten Schlüssel verwendet haben, den Sie auch für das ablaufende Zertifikat verwendet haben, ist die Veröffentlichung des neuen Zertifikates in Metadaten nicht so zeitkritisch. Das können Sie machen, wenn der Schlüssel nicht kompromittiert ist und nach wie vor den aktuellen technischen Anforderung entspricht. | ||
<callout color="# | <callout color="# | ||
**Veröffentlichen Sie das neue Zertifikat mindestens 24 Stunden vor dem nächsten Schritt zusätzlich zu dem alten Zertifikat in den Föderationsmetadaten!** | **Veröffentlichen Sie das neue Zertifikat mindestens 24 Stunden vor dem nächsten Schritt zusätzlich zu dem alten Zertifikat in den Föderationsmetadaten!** | ||
</ | </ | ||
- | * Ein unterbrechungsfreier Betrieb ist nur möglich, wenn alle Service Provider weiterhin mit dem IdP kommunizieren können. Die SPs müssen sich vorab das neue Zertifikat aus den aktualisierten Föderationsmetadaten geholt haben. Besonders, wenn Sie an eduGAIN teilnehmen, müssen Sie davon ausgehen, dass manche SPs dies nur einmal pro Tag tun. | ||
- | * Wenn Sie bei der Erstellung des Zertifikatsantrags denselben privaten Schlüssel verwendet haben, den Sie auch für das ablaufende Zertifikat verwendet haben, ist die Veröffentlichung des neuen Zertifikates in Metadaten nicht so zeitkritisch. Das können Sie machen, wenn der Schlüssel nicht kompromittiert ist und nach wie vor den aktuellen technischen Anforderung entspricht. | ||
- | |||
==== 7. Alt und neu in der Konfiguration vertauschen ==== | ==== 7. Alt und neu in der Konfiguration vertauschen ==== | ||
- | | + | |
+ | | ||
+ | * In '' | ||
idp.signing.key= / | idp.signing.key= / | ||
idp.signing.cert= / | idp.signing.cert= / | ||
Zeile 127: | Zeile 131: | ||
</ | </ | ||
* Starten Sie Tomcat neu. | * Starten Sie Tomcat neu. | ||
- | | + | <callout color="# |
+ | **Nach diesem Schritt warten | ||
+ | </ | ||
==== 8. Alte Zertifikate für SAML-Kommunikation aus Konfiguration entfernen ==== | ==== 8. Alte Zertifikate für SAML-Kommunikation aus Konfiguration entfernen ==== | ||
* Entfernen Sie das alte Zertifikat und den alten privaten Schlüssel aus der '' | * Entfernen Sie das alte Zertifikat und den alten privaten Schlüssel aus der '' | ||
Zeile 144: | Zeile 149: | ||
<!-- | <!-- | ||
<bean class=" | <bean class=" | ||
+ | p: | ||
+ | p: | ||
+ | p: | ||
+ | --> | ||
+ | </ | ||
+ | |||
+ | * **Ab IdP Version 4.3**: Editieren Sie die Datei '' | ||
+ | For key rollover, uncomment and point to your original keypair, and use the one above | ||
+ | to point to your new keypair. Once metadata has propagated, comment this one out again. | ||
+ | --> | ||
+ | <!-- | ||
+ | <bean parent=" | ||
p: | p: | ||
p: | p: | ||
Zeile 150: | Zeile 167: | ||
</ | </ | ||
* Starten Sie Tomcat neu. | * Starten Sie Tomcat neu. | ||
+ | * Falls Sie für die SAML-Kommunikation ein anderes Zertifikat als für den Webserver verwenden, tauschen Sie jetzt auch das Zertifikat in der Konfiguration für Port 8443 (siehe [[https:// | ||
===== Zertifikatstausch am SP ===== | ===== Zertifikatstausch am SP ===== | ||
Zeile 158: | Zeile 176: | ||
==== 2. Beschaffung eines neuen Zertifikates ==== | ==== 2. Beschaffung eines neuen Zertifikates ==== | ||
- | === DFN-PKI === | + | siehe oben |
- | Bei Fragen zur Erstellung von privaten Schlüsseln und Zertifikatsanträgen, | + | |
- | + | ||
- | * Sie können Ihren alten privaten Schlüssel weiterverwenden, | + | |
- | user@host: | + | |
- | </ | + | |
- | * Erstellen Sie einen Zertifikatsantrag (Certificate Signing Request, csr):< | + | |
- | user@host: | + | |
- | # Sie werden Folgendes abgefragt, evtl. befüllt mit Vorgaben aus Ihrer / | + | |
- | Country Name (2 letter code) [DE]: | + | |
- | State or Province Name (full name) []: <== Bundesland | + | |
- | Locality Name (eg, city) []: <== Stadt | + | |
- | Organization Name (eg, company) []: < | + | |
- | Organizational Unit Name (eg, section) []: <== ggf. Abteilung o.ä. | + | |
- | Common Name (eg, YOUR name) []: | + | |
- | A challenge password []: | + | |
- | An optional company name []: | + | |
- | </ | + | |
- | * Geben Sie diesen Zertifikatsantrag im .pem-Format bei der DFN-PKI ein. Wählen Sie das Profil " | + | |
- | * Sie bekommen Ihr neues Zertifikat per E-Mail von der DFN-PKI. | + | |
- | + | ||
- | === Sonstige Zertifizierungsstellen bzw. CAs === | + | |
- | Konsultieren Sie hierzu die Dokumentation des [[# | + | |
- | + | ||
- | === Selbst-signierte Zertifikate === | + | |
- | Selbst-signierte Zertifikate sind ausschließlich für die SAML-basierte Kommunikation geeignet! Sowohl Shibboleth IdP als auch Shibboleth SP werden mit einem '' | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
==== 3. Ggf. Zertifikat am Webserver tauschen ==== | ==== 3. Ggf. Zertifikat am Webserver tauschen ==== | ||
* Ersetzen Sie die alten, in der Webserverkonfiguration eingetragenen Dateien durch das neue Zertifikat, den privaten Schlüssel und die Zertifikatskette. (Unten auf dieser Seite ist erklärt, wie Sie die [[https:// | * Ersetzen Sie die alten, in der Webserverkonfiguration eingetragenen Dateien durch das neue Zertifikat, den privaten Schlüssel und die Zertifikatskette. (Unten auf dieser Seite ist erklärt, wie Sie die [[https:// | ||
Zeile 193: | Zeile 182: | ||
==== 4. Zertifikate für SAML-Kommunikation tauschen ==== | ==== 4. Zertifikate für SAML-Kommunikation tauschen ==== | ||
- | Im Gegensatz zum IdP ist beim SP zu beachten, dass der **SP vorübergehend beide Zertifikate bzw. Schlüssel | + | Der **SP benötigt |
* Legen Sie das neue Zertifikat, den privaten Schlüssel und ggf. die Zertifikatskette auf den Server. Es ist wichtig, dass der Benutzer, mit dessen Kennung der '' | * Legen Sie das neue Zertifikat, den privaten Schlüssel und ggf. die Zertifikatskette auf den Server. Es ist wichtig, dass der Benutzer, mit dessen Kennung der '' | ||
# Benutzerkennung feststellen: | # Benutzerkennung feststellen: | ||
Zeile 244: | Zeile 233: | ||
</ | </ | ||
* Starten Sie den Dienst '' | * Starten Sie den Dienst '' | ||
- | * Jetzt können Sie gleich das alte Zertifikat aus den Metadaten des SP herausnehmen. **Warten** Sie dann erneut bis zu 24 Stunden (sicher ist sicher), bis sich die Änderung in der DFN-AAI bzw. in eduGAIN herumgesprochen hat. | ||
- | ==== 6. Zertifikate für SAML-Kommunikation tauschen | + | <callout color="# |
+ | **Entfernen Sie jetzt das alte Zertifikat aus den Föderationsmetadaten und warten Sie 24 Stunden mit dem nächsten Schritt.** | ||
+ | </ | ||
+ | ==== 6. Altes Zertifikat aus der SP-Konfiguration entfernen | ||
* Entfernen Sie das alte Zertifikat aus der SP-Konfiguration, | * Entfernen Sie das alte Zertifikat aus der SP-Konfiguration, |