I have send a candidate patch for the "talking http on https" patch to the OpenSSL project. Using this patch and another fix I applied to trunk for reneg handling in the proxy client case (mod_proxy talking https to a backend), I'm now down to one remaining test suite failure.

More precisely the following points are open

- reneg for ECDHE and maybe other ciphers
IMHO broken in OpenSSL itself. Opened a case there, because I can reproduce with openssl command s_server and s_client, ie. without any Apache involvement. Steve has already taken the ticket there.

  https://rt.openssl.org/Ticket/Display.html?id=4303

- "talking http on https": The patch for OpenSSL is not big and mostly consists of the older OpenSSL 1.0.2 code but they have to check, whether I have put it at the right place. I verified it works by running the Apache test suite, which contains tests using the "talking http on https" feature.

  https://rt.openssl.org/Ticket/Display.html?id=4304

- Test suite failure test 3 in t/security/CVE-2009-3555.t. The test sends two requests pipelined, where the first one needs a reneg. Pre-1.1.0 the first requests succeeds and then the connection is closed. Using 1.1.0 the reneg fails, the first request get a 403 and the connection is closed. For this there's still some analysis needed on our side.

All other tests succeed, some non-SSL tests fails for prefork and worker, but they did before the changes and they fail with OpenSSL 1.0.2 also.

Once the last test breakage is fixed, I plan to go through the changes in order to remove pre-1.1.0 OpenSSL specific code where these versions can use the newer as well. Currently pre-1.1.0 OpenSSL versions use the exact same code path as before the changes.


If you want to do tests on your own, what you need is:

- OpenSSL 1.1.0pre2 plus two patches:


https://github.com/openssl/openssl/commit/311f27852a18fb9c10f0c1283b639f12eea06de2

  https://rt.openssl.org/Ticket/Attachment/62645/38635/http-on-https.patch

- Fix to use a non-ECDHE cipher in the test suite

--- t/conf/ssl/ssl.conf.in  2016-02-12 17:21:44.857749000 +0100
+++ t/conf/ssl/ssl.conf.in        2016-02-12 23:15:18.493357000 +0100
@@ -33,7 +33,8 @@
         CustomLog logs/ssl_request_log ssl
     </IfModule>

-    SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
+ SSLCipherSuite AES128-SHA256:ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
+    SSLHonorCipherOrder On

     <IfDefine TEST_SSL_PASSPHRASE_EXEC>
SSLPassPhraseDialog exec:@ServerRoot@/conf/ssl/httpd-passphrase.pl


- Depending on how you link apr-util crypto build also against OpenSSL 1.1.0. apr trunk but also apr-util 1.5.x head supports this.

Regards,

Rainer

Reply via email to