]> granicus.if.org Git - apache/commitdiff
Document workaround with OpenSSL < 1.0.2 regarding multiple certificates
authorYann Ylavic <ylavic@apache.org>
Tue, 8 Mar 2016 12:18:37 +0000 (12:18 +0000)
committerYann Ylavic <ylavic@apache.org>
Tue, 8 Mar 2016 12:18:37 +0000 (12:18 +0000)
types (RSA, DSA, ECC) and default DH parameters.  PR 59087.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1734058 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/mod/mod_ssl.xml

index 29bb2e83855e3a3ee179c3e12dd4cdd855bb6be6..769afa8a79696c52744a90e813be8ce9068bbf29 100644 (file)
@@ -854,7 +854,8 @@ 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,
 <code>openssl list-public-key-algorithms</code> will output a list
-of supported algorithms.
+of supported algorithms, see also the note below about limitations
+of OpenSSL versions prior to 1.0.2 and the ways to work around them.
 </p>
 
 <p>
@@ -904,6 +905,33 @@ such issues.
 </p>
 </note>
 
+<note>
+<title>Default DH parameters when using multiple certificates and OpenSSL
+versions prior to 1.0.2</title>
+<p>
+When using multiple certificates to support different authentication algorithms
+(like RSA, DSA, but mainly ECC) and OpenSSL prior to 1.0.2, it is recommended
+to either use custom DH parameters (preferably) by adding them to the
+first certificate file (as described above), or to order the
+<directive>SSLCertificateFile</directive> directives such that RSA/DSA
+certificates are placed <strong>after<strong> the ECC one.
+</p>
+<p>
+This is due to a limitation in older versions of OpenSSL which don't let the
+Apache HTTP Server determine the currently selected certificate at handshake
+time (when the DH parameters must be sent to the peer) but instead always
+provide the last configured certificate. Consequently, the server may select
+default DH parameters based on the length of the wrong certificate's key (ECC
+keys are much smaller than RSA/DSA ones and their length is not relevant for
+selecting DH primes).
+</p>
+<p>
+Since custom DH parameters always take precedence over the default ones, this
+issue can't be avoided by creating and configuring them (as described above),
+thus using the custom/suitable length.
+</p>
+</note>
+
 <example><title>Example</title>
 <highlight language="config">
 SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt