I have a web server running Apache 2.0 on RHEL4. This server recently failed a PCI scan.

Reason: SSLv3.0/TLSv1.0 Protocol Weak CBC Mode Vulnerability Solution: This attack was identified in 2004 and later revisions of TLS protocol which contain a fix for this. If possible, upgrade to TLSv1.1 or TLSv1.2. If upgrading to TLSv1.1 or TLSv1.2 is not possible, then disabling CBC mode ciphers will remove the vulnerability. Using the following SSL configuration in Apache mitigates this vulnerability: SSLHonorCipherOrder On SSLCipherSuite RC4-SHA:HIGH:!ADH

Simple fix, I thought. I added the lines to Apache configuration and it didn't work. Apparently
"SSLHonorCipherOrder On" will only work on Apache 2.2 and later. I tried upgrading Apache, soon ran into dependency hell and it seems I will have to upgrade the entire OS to upgrade to Apache 2.2. We are retiring this server in a few months so it's not worth it.

The solution says "If upgrading to TLSv1.1 or TLSv1.2 is not possible, then disabling CBC mode ciphers will remove the vulnerability."

How would I do this on Apache 2.0? Is this even possible? If not, are there any other work arounds?

  • 3
    Since extended update support for RHEL4(.7) ended a year ago, I suggest maybe retiring the server sooner rather than later. Otherwise, you'll probably need to build apache 2.2 from source.
    – DerfK
    Aug 7, 2012 at 15:05
  • The new server is ready but we can't migrate until December. Yes, compiling and installing Apache 2.2 from sources is the last option for now. Was wondering if there is an easier work around?
    – Debianuser
    Aug 7, 2012 at 15:14

3 Answers 3


Other than compiling a newer Apache by hand, the only thing I can think of would be to make RC4-SHA the only supported cipher (tested with openssl ciphers RC4-SHA on the current openssl to make sure it only prints one cipher, you may want to do the same to make sure it doens't match some weird old cipher on your old openssl):

SSLCipherSuite RC4-SHA

MS says Windows XP suports TLS_RSA_WITH_RC4_128_SHA so you shouldn't have any compatibility problems.

  • 1
    Exactly what I was looking for. I tested successfully using beast-check.googlecode.com/files/beast.pl. I will schedule a PCI scan and let you know once it's done.
    – Debianuser
    Aug 7, 2012 at 15:55
  • I can confirm this worked. The server passed a PCI scan. Thank you very much.
    – Debianuser
    Aug 10, 2012 at 11:28

There are only two ways to "fix" BEAST at the server level.

The best option is to upgrade your server's SSL library to one that supports TLS v1.1 or later (and make sure your clients support it too, so you can force them to use it).

The other option is to disable any CBC (Cypher-Block-Chaining) encryption algorithms and switch to en ECB (Electronic Code Book) cypher or something like RC4 (ECB algorithms are theoretically "less secure" because a given plaintext input encrypted to a given key always maps back to the same cyphertext which makes it easier to break with known plaintext attacks, but in practical terms this isn't likely to be a huge problem. Google (as an example) still uses RC4).

Since the server you're running is dead, buried, and decomposing this is probably not worth the amount of effort it would require to build a patched Apache (you will need to rebuild Apache and OpenSSL in isolation, so as not to upset anything that requires the version of OpenSSL installed on your system by default -- If you're doing that much work you may as well upgrade the whole system to something that's actually supported), so that pretty much leaves you with "Switch to ECB Cyphers" as your viable solution.

BEAST is really a nothing-burger of an attack these days -- All the popular browsers (IE, Chrome, Safari, Opera) have implemented an effective workaround, and because of the way the attack works it's pretty hard to implement outside of a browser (so apt and yum are still pretty much safe).

Adam Langley from Google gave an excellent talk earlier this year which outlines some of the pain points you should be concentrating on re: SSL and security -- While BEAST earned a mention it was near the bottom of the list of things to be worried about.

  • RC4 is not an ECB mode cipher. Using ECB mode would be a huge mistake, and there are good reasons TLS has no supported ECB cipher suites. Using a stream cipher like RC4 is a much less bad idea, though recent results mean it's looking less good than it did isg.rhul.ac.uk/tls
    – armb
    Mar 15, 2013 at 13:39

The only solution that I have found that will get you to pass the ssllabs.com test is to add the following four lines to your apache httpd.conf and your ssl.conf files:

SSLHonorCipherOrder On

SSLProtocol -all +TLSv1 +SSLv3


SSLInsecureRenegotiation off

Make sure that you do not have any of these settings posted twice in the ssl.conf file.

Now my sites pass with an A.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .