Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
en:certificates [2017/12/04 15:49] – Silke Meyer | en:certificates [2021/08/04 09:05] – Wolfgang Pempe | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Certificates for SAML-based communication | + | ~~NOTOC~~ |
+ | ====== Certificates ====== | ||
+ | {{INLINETOC 2}} | ||
+ | ===== Certificates for SAML-based communication ===== | ||
In the context of SAML-based communication between IdP and SP, certificates are used for purposes of signature validation and encryption. Those certificates must be registered for the respective entity using the [[en: | In the context of SAML-based communication between IdP and SP, certificates are used for purposes of signature validation and encryption. Those certificates must be registered for the respective entity using the [[en: | ||
- | **The general rule is:** Entities with invalid (that is expired or revoked) certificates are automatically removed from the productive DFN-AAI federation! | + | **The general rule is:** Entities with invalid (i.e. expired or revoked) certificates are automatically removed from the productive DFN-AAI federation! |
- | ===== Information for Identity Providers / Attribute Authorities | + | ==== Information for Identity Providers / Attribute Authorities ==== |
- | Cf. [[de:shibidp3prepare-zert# | + | Cf. [[de:shibidp: |
- | ===== Information for Service Providers | + | ==== Information for Service Providers ==== |
- | All certificates and the respective private keys used for SAML-based communication have to be add to your SP's configuration, | + | All certificates and the respective private keys used for SAML-based communication have to be added to your SP's configuration, |
- | ==== DFN-PKI Certificates ==== | + | === DFN-PKI Certificates === |
+ | For general information, | ||
If you are entitled to request certificates issued by DFN-PKI, please select the " | If you are entitled to request certificates issued by DFN-PKI, please select the " | ||
- | ==== Common Trusted CA Certificates | + | === Common Trusted CA Certificates === |
- | You can use certificates issued by common Certification Authorities (CAs) that are preinstalled in the most common web browsers (Google Chrome, Firefox, Microsoft Edge). They must not exceed a validity of 39 months. If you get an " | + | You can use certificates issued by common Certification Authorities (CAs) that are preinstalled in the most common web browsers (Google Chrome, Firefox, Microsoft Edge). If you get an " |
- | **Service Providers that are already registered with another federation, the same certificate (i.e. the one registered with the other federation) may be used even if the aforementioned requirements are not met.** In this case, please drop a note to the DFN-AAI [[mailto:hotline@aai.dfn.de|helpdesk]]. | + | |
- | ==== Self-signed Certificates ==== | + | === Own/Local CA === |
- | Self-signed certificates may be used as well if they are not valid for longer than 39 months. | + | For institutions/ |
- | * Please offer us a possibility to download | + | **Note:** If required, local CAs can also be hosted by the DFN-PCA |
- | * If you do not have the possibility | + | **Important: |
- | < | + | A good guide to operating your own CA can be found [[https:// |
- | $ openssl x509 -noout -fingerprint -sha1 -in self-signed-server-cert.pem | + | Parameters to be considered: |
- | $ openssl | + | * Root Private Key: RSA, 4096 Bit |
- | </ | + | * Validity of the root certificate: 20 years (recommended) |
- | * As a third option, you can send us the certificate | + | * Validity of the issued certificates: max. 39 months |
+ | * Key length of the issued certificates: | ||
+ | * Signature algorithm: sha256 | ||
+ | * The CN of the issued certificate corresponds to the FQDN of the respective IdP/SP host. | ||
- | ==== Please avoid the following certificates | + | === Self-signed Certificates === |
- | === Wildcard certificates | + | Self-signed certificates may be used if they are not valid for longer than 39 months. For production, the CN (or the subject alternative names) of the certificate must at least contain the domain name of the SP. Ideally it should contain the complete host name. As for the technical details, please refer to the online documentation of [[https:// |
+ | * Send us the certificate in an S/ | ||
+ | * An alternative way is to offer us a possibility to download the certificate via https (e.g. via your SPs metadata handler or a download link to the file on your webserver). The SSL connection to the webserver has to be secured by a trusted CA certificate. | ||
+ | * If none of these options works for you, please get in touch with us (+49 30 884299-9124, | ||
+ | |||
+ | <callout type=" | ||
+ | **As for Service Providers that are already registered with another federation, the same certificate (i.e. the one registered with the other federation) may be used even if the aforementioned requirements are not met.** In this case, please drop a note to the DFN-AAI [[hotline@aai.dfn.de|helpdesk]]. | ||
+ | </ | ||
+ | |||
+ | === Please avoid the following certificates === | ||
+ | == Wildcard certificates == | ||
The use of wildcard certificates is only permitted in duly justified cases. | The use of wildcard certificates is only permitted in duly justified cases. | ||
- | === Letsencrypt | + | == Letsencrypt == |
We strongly advise against the use of Letsencrypt certificates for SAML-based communication as they expire after 90 days. Every time, you would have to do a manual certificate rollover in the metadata administration tool. The SP configuration has to be adapted twice for a rollover, too. That is why we recommend self-signed certificates with a validity of 3 years. (If you are securing your webserver with Letsencrypt certificates, | We strongly advise against the use of Letsencrypt certificates for SAML-based communication as they expire after 90 days. Every time, you would have to do a manual certificate rollover in the metadata administration tool. The SP configuration has to be adapted twice for a rollover, too. That is why we recommend self-signed certificates with a validity of 3 years. (If you are securing your webserver with Letsencrypt certificates, | ||
- | |||
- | ==== Certificate rollover ==== | ||
- | Whenever you switch to a new certificate, | ||
**Next step:** [[en: | **Next step:** [[en: | ||
- | ====== The SSL certificate chain on your webserver | + | ==== Certificate / Key Rollover (SP) ==== |
+ | |||
+ | Whenever you switch to a new certificate, | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | Note: When their documentation tells you to wait two hours, you should wait a whole day as the distribution of metadata to all DFN-AAI participants can take that long. If you have a DFN-PKI certificate, | ||
+ | |||
+ | ===== The SSL certificate chain on your webserver ===== | ||
Your webserver' | Your webserver' | ||
Line 55: | Line 76: | ||
6ded7378 | 6ded7378 | ||
</ | </ | ||
- | * Check the hash of the first intermediate certificate. | + | * Check the hash of the first intermediate certificate. |
< | < | ||
$ openssl x509 -in intermediate1.pem -noout -hash | $ openssl x509 -in intermediate1.pem -noout -hash | ||
Line 67: | Line 88: | ||
If there is another intermediate certificate, | If there is another intermediate certificate, | ||
- | If you use the Apache webserver, point the SSLCACertificateFile directive to your chain file. (See the example configuration on [[de: | + | If you use the Apache webserver, point the SSLCACertificateFile directive to your chain file. (See the example configuration on [[de: |
Once you have added you certificate chain, adapted your configuration and activated it you can verify it with OpenSSL: | Once you have added you certificate chain, adapted your configuration and activated it you can verify it with OpenSSL: | ||
Line 73: | Line 94: | ||
$ openssl s_client -connect idp.domain.tld: | $ openssl s_client -connect idp.domain.tld: | ||
</ | </ | ||
- | Below you can the answer of dfn.de' | + | Below you can see the answer of dfn.de' |
**Next step:** [[en: | **Next step:** [[en: |