From efacdd5e81ccbaacb3a2293ca732ba27f14c1b51 Mon Sep 17 00:00:00 2001 From: "William A. Rowe Jr" Date: Thu, 27 Jun 2013 00:10:15 +0000 Subject: [PATCH] Change the SSLCipherSuite default to a shorter, whitelist oriented definition. Disable AECDH ciphers in example config by using !aNULL (which includes all ciphers without authentication. PR: 51363 Submitted by: rjung, kbrand, Rob Stradling Backports: r966160, r1135234, r1203752 Fix up some SSL configuration, per issue #49484. IE6 had a hotfix released for this problem quite a while back (see kb 921090), so restrict the modified behavior to the old/unsupported browsers. * docs/conf/extra/http-ssl.conf.in: (): tighten up the regex to only select old MSIE browsers for the downgrade in http behavior. this allows IE6 to run much faster. * Make the MSIE BrowserMatch regexp fit for MSIE 10. Remove useless '.*' Backports: r966055, r1132793 Submitted by: gstein, sf Reviewed by: wrowe, rjung, gsmith git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x@1497156 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 9 +++++++++ STATUS | 6 ------ docs/conf/ssl-std.conf.in | 9 +++++++-- docs/manual/ssl/ssl_howto.html.en | 8 ++++---- docs/manual/ssl/ssl_howto.xml | 8 ++++---- 5 files changed, 24 insertions(+), 16 deletions(-) diff --git a/CHANGES b/CHANGES index 360d115efc2..4f5fbb659c3 100644 --- a/CHANGES +++ b/CHANGES @@ -73,6 +73,15 @@ Changes with Apache 2.0.65 *) Improve platform detection for bundled PCRE by updating config.guess and config.sub. [Rainer Jung] + *) ssl-std.conf: Disable AECDH ciphers in example config. PR 51363. + [Rob Stradling ] + + *) ssl-std.conf: Change the SSLCipherSuite default to a shorter, + whitelist oriented definition. [Rainer Jung, Kaspar Brand] + + *) ssl-std.conf: Only select old MSIE browsers for the downgrade + in http/https behavior. [Greg Stein, Stefan Fritsch] + Changes with Apache 2.0.64 *) SECURITY: CVE-2010-1452 (cve.mitre.org) diff --git a/STATUS b/STATUS index d8b2b3fa647..4d3ab4649a4 100644 --- a/STATUS +++ b/STATUS @@ -124,12 +124,6 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK: identify exactly what the proposed changes are! Add all new proposals to the end of this list. ] - * Alternate: -SSLv2, Simplify SSLCipherSuite, corresponding docs fix, - MSIE downgrade changes - r966160, r1135234, r1203752, r966055, r1132793 - http://people.apache.org/~wrowe/https-std-2.0.patch - +1: wrowe, rjung, gsmith - PATCHES TO BACKPORT THAT ARE ON HOLD OR NOT GOING ANYWHERE SOON: diff --git a/docs/conf/ssl-std.conf.in b/docs/conf/ssl-std.conf.in index ae831187f0b..9bce1f07917 100644 --- a/docs/conf/ssl-std.conf.in +++ b/docs/conf/ssl-std.conf.in @@ -93,10 +93,15 @@ TransferLog @exp_logfiledir@/access_log # Enable/Disable SSL for this virtual host. SSLEngine on +# SSL Protocol support: +# List the protocol versions which clients are allowed to +# connect with. Disable SSLv2 by default (cf. RFC 6176). +SSLProtocol all -SSLv2 + # SSL Cipher Suite: # List the ciphers that the client is permitted to negotiate. # See the mod_ssl documentation for a complete list. -SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL +SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 # Server Certificate: # Point SSLCertificateFile at a PEM encoded certificate. If @@ -231,7 +236,7 @@ SSLCertificateKeyFile @exp_sysconfdir@/ssl.key/server.key # Similarly, one has to force some clients to use HTTP/1.0 to workaround # their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and # "force-response-1.0" for this. -SetEnvIf User-Agent ".*MSIE.*" \ +SetEnvIf User-Agent "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 diff --git a/docs/manual/ssl/ssl_howto.html.en b/docs/manual/ssl/ssl_howto.html.en index ea85a26a950..d2cc0210e48 100644 --- a/docs/manual/ssl/ssl_howto.html.en +++ b/docs/manual/ssl/ssl_howto.html.en @@ -69,10 +69,10 @@ without knowing its restrictions and coherences.

How can I create an SSL server which accepts strong encryption only?

-

The following enables only the seven strongest ciphers:

+

The following enables only the strongest ciphers:

httpd.conf

- SSLProtocol all
- SSLCipherSuite HIGH:MEDIUM
+ SSLProtocol all -SSLv2
+ SSLCipherSuite HIGH:!aNULL:!MD5

@@ -119,7 +119,7 @@ URL? <Location /strong/area>
# but https://hostname/strong/area/ and below
# requires strong ciphers
- SSLCipherSuite HIGH:MEDIUM
+ SSLCipherSuite HIGH:!aNULL:!MD5
</Location>

diff --git a/docs/manual/ssl/ssl_howto.xml b/docs/manual/ssl/ssl_howto.xml index 4fb2b0676b4..e93edbc1dc4 100644 --- a/docs/manual/ssl/ssl_howto.xml +++ b/docs/manual/ssl/ssl_howto.xml @@ -65,10 +65,10 @@ without knowing its restrictions and coherences.

How can I create an SSL server which accepts strong encryption only? -

The following enables only the seven strongest ciphers:

+

The following enables only the strongest ciphers:

httpd.conf - SSLProtocol all
- SSLCipherSuite HIGH:MEDIUM
+ SSLProtocol all -SSLv2
+ SSLCipherSuite HIGH:!aNULL:!MD5
@@ -116,7 +116,7 @@ URL? <Location /strong/area>
# but https://hostname/strong/area/ and below
# requires strong ciphers
- SSLCipherSuite HIGH:MEDIUM
+ SSLCipherSuite HIGH:!aNULL:!MD5
</Location> -- 2.47.2