0

I have these settings for my certbot certificate on my nginx virtual host. Is this complete or secure/valid? someone mentioned something about unsecure ciphers v1.2 or something

    ## SSL
    ssl_session_cache shared:SSL:20m;
    ssl_session_timeout 10m;

    ssl_prefer_server_ciphers On;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 10s;
4

Please don't make up your own configuration and ask if it is secure for some unknown purpose and unknown security requirements but instead follow established recommendations.

If you feel that it is better to create your own config please don't just dump the config. Instead explain why do you think the specific configuration options make sense in your (unknown) use case.

But in short:

  • 3DES should not be longer used unless you have clients which still require it.
  • If possible (depending on clients) disable all protocols except TLS 1.2 or better.
  • DHE/ECDHE should be preferred since it provides forward security but you still allow RSA key exchange.
  • Even if DH(E) provides forward security it should not be used for performance reasons unless you have clients which still don't support ECDHE.

Apart from that: it does not matter for the configuration you've shown if you use a certificate from LetsEncrypt or some other CA.

  • I understand thank you. My website is targeted to the todays web standards. Not old devices. – Born vs. Me Jan 26 at 11:47
  • Pst. That Mozilla SSL Configuration Generator defaults to rather old (EOL) Apache 2.2.15 from Mar 2010 and OpenSSL 1.0.1e from Feb 2013 (not to mention "Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8" on the client side). How can we trust that these are established recommendations still in 2019? – Esa Jokinen Jan 26 at 12:14
  • 1
    @EsaJokinen: you are kind of right. But this seems to be only some initial value. If you select a different server or "old" etc and then switch back it uses Apache 2.4.34. Anyway, one should enter the values for server and OpenSSL version one is actually using to get a suitable configuration instead of only selection the server type. And this configuration also reflects the newer algorithms supported by browsers and servers, like ChaCha20. – Steffen Ullrich Jan 26 at 14:21
  • That's true, but confusing enough to be explained in detail in a separate answer. – Esa Jokinen Jan 26 at 14:44
  • So that is your full config example? If I may ask – Born vs. Me Jan 26 at 21:22
0

The Mozilla SSL Configuration Generator suggested by Steffen Ullrich is a suitable tool if you know what you are doing. It defaults to very old server and OpenSSL versions, not to mention browser versions. Not everything it tells can be considered secure, but with this tool you could estimate your desired compromise between security and compatibility. The most crucial selection is (*) Modern, not even available with the default options. The pros for this tool is that it gives ready configuration sections unlike many others.

For more detailed view I'd recommend Qualys SSL Labs' SSL Server Test. It will not only grade the ciphers but everything related to your TLS configuration. Any issues found are marked with colors, and there's a Handshake Simulation section with a list of example browsers your site currently supports (or don't). They have also built a SSL/TLS Deployment Best Practices guide, last updated in May 2017. It doesn't directly deprecate TLS 1.0 & 1.1, but recognizes the problems with them.

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.