2

I'm tring to set up HTTP2 with apache2, and certbot-auto, the fact is I have another working server with HTTP2+ Apache2 + with letsencrypt cert, HTTP2 is working perfectly on this server. I have this on both server :

SSLHonorCipherOrder     on

SSLProtocol             all -SSLv3
SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

SSLOpenSSLConfCmd DHParameters "/etc/ssl/private/dhparams_4096.pem"

I tryed to regen both dhparams key with :

openssl dhparam -out /etc/ssl/private/dhparams_4096.pem 4096

Restart apache, same problem , server 1 is working, server 2 no.

On ssllabs.com I have with chrome, FF, ... :

Server negotiated HTTP/2 with blacklisted suite

If I test with :

openssl s_client -host 127.0.0.1 -port 443

On the working server I have :

Server Temp Key: ECDH, P-256, 256 bits
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256

On the not working server :

Server Temp Key: DH, 4096 bits
Cipher    : DHE-RSA-AES128-GCM-SHA256

I know that it should be a ECDH key to work, but I don't know why it's not working as all server have exactly the same configuration !

I alway use : certbot-auto --apache -d mydomain.com to generate a cert, i work with HTTP2 on the first server, not on the second (error inadequate security, and fallback to http1.1)

Can you help me ? I want a working configuration with apache2 and SSL/HTTP2, I dont need very old browser compatibility. Or if you know a very good working tutorial to do that.

Apache 2.4.25 and open ssl 1.0.2k on both servers.

jww
  • 97,681
  • 90
  • 411
  • 885
neoteknic
  • 1,930
  • 16
  • 32
  • I have made some tests : ECDHE-ECDSA-AES128-GCM-SHA256 is in the config, but the server dont take it, If I put only this cipher, I have a handshake failure. I dont know how to install the ECDHE-ECDSA-AES128-GCM-SHA256 cipher, apache? openssl ? – neoteknic Mar 02 '17 at 16:08
  • With : openssl ciphers -v 'ALL:eNULL' ECDHE-RSA-AES128-GCM-SHA256 is in the list. Why apache dont take it ? – neoteknic Mar 02 '17 at 16:12
  • We need to see the server certificates. The command `openssl s_client -host 127.0.0.1 -port 443` may not be correct. A cipher suite string of `"HIGH:!kRSA:!aNULL:!MD5:!RC4"` should work well for you. It will pass the SSL Labs audit, and ChaCha20/Poly1305 will be preferred for TLS 1.3 (when it becomes available). Also see [Issue 963: TLS 1.3 support](https://github.com/openssl/openssl/issues/963) on the OpenSSL issue tracker. – jww Mar 02 '17 at 20:55
  • Stack Overflow is a site for programming and development questions. This question appears to be off-topic because it is not about programming or development. See [What topics can I ask about here](http://stackoverflow.com/help/on-topic) in the Help Center. Perhaps [Super User](http://superuser.com/) or [Unix & Linux Stack Exchange](http://unix.stackexchange.com/) would be a better place to ask. Also see [Where do I post questions about Dev Ops?](http://meta.stackexchange.com/q/134306) – jww Mar 02 '17 at 20:59

1 Answers1

0

I just (re) emerged apache 2.4.25 with exactly the same compilations flags and it works now ! Maybe some cipher libs was compiled before newer openssl. I'm on gentoo.

neoteknic
  • 1,930
  • 16
  • 32