2

I have an interesting problem with two Linux servers with Apache 2.4.9: i'm trying to disable SSL v3 and RC4 in order to block POODLE and keep SSL Labs happy. However, whenever i turn off SSL v3, i also lose TLS 1.1 and 1.2 (keeping only TLS 1.0).

Here's my Apache version:

$ apachectl -v
Server version: Apache/2.4.9 (Unix)
Server built:   Mar 24 2014 10:51:20

And OpenSSL:

$ openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

And Linux:

$ cat /proc/version
Linux version 2.6.32-279.11.1.el6.x86_64 (mockbuild@x86-009.build.bos.redhat.com) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Sat Sep 22 07:10:26 EDT 2012

Here's what i tried:

# TLS 1.0 only
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite MEDIUM:HIGH:!RC4

This first one is what i would expect to work, and i have used it successfully in other Apache installations. The result is TLS 1.0 only.

# SSLv3, TLS1.0, 1.1, 1.2
SSLProtocol all -SSLv2
SSLCipherSuite MEDIUM:HIGH:!RC4

This turns off RC4, and keeps TLS 1.0, 1.1 and 1.2, but SSL v3 is also enabled.

finally:

# TLS 1.2 only
SSLProtocol all 
SSLCipherSuite MEDIUM:HIGH:!RC4:!SSLv3

This combination results in TLS 1.2 only (no TLS 1.0 or 1.1, no SSL).

I'm thinking this is a bug in mod_ssl in the Apache i have. I'm curious if anyone here has seen this, and if you have found a way to have TLS 1.0, 1.1 and 1.2 enabled, but SSL disabled.

Thanks.

  • You forgot to mention your Linux distribution and the origin of your Apache package. – Michael Hampton Aug 4 '15 at 17:19
  • Added Linux version. I don't know the origin of the Apache package, but it wasn't compiled from source. Probably yum. – theglauber Aug 4 '15 at 22:48
  • 2
    RHEL 6 did not come with that version of Apache. So that is still a question in need of an answer. – Michael Hampton Aug 4 '15 at 22:50
  • I'm sorry, I don't remember how this was fixed, and this has been over 2 years ago. I don't remember which server this was, and it probably doesn't exist anymore. I appreciate the answers, but I can't confirm them, so I'm going to close this question. – theglauber Jul 9 '18 at 14:52
  • I can't close, but flagged asking for closing. – theglauber Jul 9 '18 at 14:55
1

Is the use of MEDIUM preventing TLS 1.1 and 1.2 from being enabled? Below is my config. I don't remember why I forced the cipher order. I just checked at Qualys and it shows Only TLS is enabled 1.0, 1.1, 1.2.

SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK
  • Thanks for the reply. This enabled TLS 1.0 only (no SSL, no TLS 1.1 or 1.2). I believe the cipher order is to nudge clients to use Forward Secrecy. – theglauber Aug 4 '15 at 16:05
  • I am using Scientific Linux release 6.6 (Carbon) with Apache 2.2.15 Jul 22 2015 11:51:03 and OpenSSL 1.0.1e-fips – albal Aug 4 '15 at 19:13
  • @theglauber Does this post answer your question? – sebix Aug 16 '15 at 19:20
  • No. I tried the suggestion, and the result was it enabled TLS 1.0 only (no SSL, no TLS 1.1 or 1.2). I think i have a bad Apache version or build. – theglauber Aug 17 '15 at 15:41
1

You have a couple things going on here. First you are defining the transport layer security protocol versions you are going to support, secondly you are defining ciphers supported which will then be negotiated during the client hello phase of the TLS handshake.

Based on the apache documentation for 2.4 here: https://httpd.apache.org/docs/2.4/mod/mod_ssl.html

You need to define your supported TLS versions, with a line that looks like this in your vhost container:

SSLProtocol TLSv1.1 TLSv1.2

Then you need to define your ciphers in your vhost container as well (included the below as an example):

SSLCipherSuite AES+kRSA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4
  • Thank you for your answer. This happened almost 3 years ago, and I don't remember what the solution was. I believe that server doesn't exist anymore. – theglauber Jul 9 '18 at 14:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.