From: Rainer Jung Date: Mon, 1 Jun 2015 15:15:06 +0000 (+0000) Subject: Try to clarify extended uses of SSLCertificateFile. X-Git-Tag: 2.4.13~14 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9da49151a777935796f9ee112c05f1614748df8b;p=apache Try to clarify extended uses of SSLCertificateFile. Backport of r1682923 from trunk. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1682929 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/mod/mod_ssl.xml b/docs/manual/mod/mod_ssl.xml index d7efa06923..07a3459581 100644 --- a/docs/manual/mod/mod_ssl.xml +++ b/docs/manual/mod/mod_ssl.xml @@ -822,35 +822,44 @@ SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW

This directive points to a file with certificate data in PEM format. At a minimum, the file must include an end-entity (leaf) certificate. -Beginning with version 2.4.8, it may also include intermediate CA -certificates, sorted from leaf to root, and obsoletes -SSLCertificateChainFile. +The directive can be used multiple times (referencing different filenames) +to support multiple algorithms for server authentication - typically +RSA, DSA, and ECC. The number of supported algorithms depends on the +OpenSSL version being used for mod_ssl: with version 1.0.0 or later, +openssl list-public-key-algorithms will output a list +of supported algorithms.

-Additional optional elements are DH parameters and/or an EC curve name -for ephemeral keys, as generated by openssl dhparam and -openssl ecparam, respectively (supported in version 2.4.7 -or later) and finally, the end-entity certificate's private key. -If the private key is encrypted, the pass phrase dialog is forced -at startup time.

+The files may also include intermediate CA certificates, sorted from +leaf to root. This is supported with version 2.4.8 and later, +and obsoletes SSLCertificateChainFile. +When running with OpenSSL 1.0.2 or later, this allows +to configure the intermediate CA chain on a per-certificate basis. +

-This directive can be used multiple times (referencing different filenames) -to support multiple algorithms for server authentication - typically -RSA, DSA, and ECC. The number of supported algorithms depends on the -OpenSSL version being used for mod_ssl: with version 1.0.0 or later, -openssl list-public-key-algorithms will output a list -of supported algorithms.

+Custom DH parameters and an EC curve name for ephemeral keys, +can also be added to end of the first file configured using +SSLCertificateChainFile. +This is supported in version 2.4.7 or later. +Such parameters can be generated using the commands +openssl dhparam and openssl ecparam. +The parameters can be added as-is to the end of the first +certificate file. Only the first file can be used for custom +parameters, as they are applied independently of the authentication +algorithm type. +

-When running with OpenSSL 1.0.2 or later, this directive allows -to configure the intermediate CA chain on a per-certificate basis, -which removes a limitation of the (now obsolete) -SSLCertificateChainFile directive. -DH and ECDH parameters, however, are only read from the first -SSLCertificateFile directive, as they -are applied independently of the authentication algorithm type.

+Finally the the end-entity certificate's private key can also be +added to the certificate file instead of using a separate +SSLCertificateKeyFile +directive. This practice is highly discouraged. If it is used, +the certificate files using such an embedded key must be configured +after the certificates using a separate key file. If the private +key is encrypted, the pass phrase dialog is forced at startup time. +

DH parameter interoperability with primes > 1024 bit @@ -886,9 +895,7 @@ SSLCertificateFile "/usr/local/apache2/conf/ssl.crt/server.crt"

This directive points to the PEM-encoded private key file for the -server (the private key may also be combined with the certificate in the -SSLCertificateFile, but this practice -is discouraged). If the contained private key is encrypted, the pass phrase +server. If the contained private key is encrypted, the pass phrase dialog is forced at startup time.

@@ -898,6 +905,13 @@ to support multiple algorithms for server authentication. For each directive, there must be a matching SSLCertificateFile directive.

+

+The private key may also be combined with the certificate in the file given by +SSLCertificateFile, but this practice +is highly discouraged. If it is used, the certificate files using such +an embedded key must be configured after the certificates using a separate +key file.

+ Example SSLCertificateKeyFile "/usr/local/apache2/conf/ssl.key/server.key" diff --git a/docs/manual/ssl/ssl_faq.xml b/docs/manual/ssl/ssl_faq.xml index 58e0b88bf5..0b6d8d82aa 100644 --- a/docs/manual/ssl/ssl_faq.xml +++ b/docs/manual/ssl/ssl_faq.xml @@ -758,20 +758,22 @@ SetEnvIf User-Agent "MSIE [2-5]" \ or higher), you can either rearrange mod_ssl's cipher list with SSLCipherSuite (possibly in conjunction with SSLHonorCipherOrder), - or you can use the SSLCertificateFile - directive to configure custom DH parameters with a 1024-bit prime, which + or you can use custom DH parameters with a 1024-bit prime, which will always have precedence over any of the built-in DH parameters.

-

To generate custom DH parameters, use the openssl dhparam - command. Alternatively, you can append the following standard 1024-bit DH +

To generate custom DH parameters, use the openssl dhparam 1024 + command. Alternatively, you can use the following standard 1024-bit DH parameters from RFC 2409, - section 6.2 to the respective - SSLCertificateFile file:

+ section 6.2:

-----BEGIN DH PARAMETERS-----
 MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR
 Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL
 /1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC
 -----END DH PARAMETERS-----
+

Add the custom parameters including the "BEGIN DH PARAMETERS" and + "END DH PARAMETERS" lines to the end of the first certificate file + you have configured using the + SSLCertificateFile directive.