I’m trying to make my web server to work with TLS 1.3 and nginx. My nginx is currently latest version and supports TLS 1.3 in the configuration, the CSR file was generated by Openssl 1.1.1. and this version supports TLS 1.3 too. But from my test on SSL Labs it always reported that my site doesn’t support TLS 1.3 and only TLS 1.2 and below. Can you please tell me if Let’s Encrypt provided certificates that support TLS 1.3 already?
I forgot to mention - you need to statically compile nginx against OpenSSL 1.1.1 yourself.
No Linux distro (as of this post) is yet packaging nginx built against anything higher than OpenSSL 1.1.0.
Even though nginx 1.15 technically understands the meaning of “TLSv1.3”, it can’t take advantage of it unless it is is linked against a high enough version of OpenSSL.
Notably, this applies to the latest versions of Debian, CentOS and Ubuntu.
Yeah nothing to do with what SSL certs are used, TLS 1.3 is about having the right version of Nginx, OpenSSL 1.1.1 or BoringSSL and having the right supporting browser client that speaks the same TLS 1.3 version (draft 23, draft 28 or rfc final).
Which is specific version of Nginx you're using ?
Nginx 1.15.3+ has full TLS 1.3 support with BoringSSL compiled but need ssl_protocols to also list TLSv1.3
Nginx 1.15.4+ has full TLS 1.3 support with OpenSSL 1.1.1 compiled but need ssl_protocols to also list TLSv1.3
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
Full TLS 1.3 meaning including Early Data session resumption (0-RTT)
For other folks Nginx and OpenSSL 1.1.1 you will only have TLS 1.3 rfc final supported which is same version SSL Labs is testing for when checking TLS 1.3 and same TLS 1.3 version support on test client/browser end i.e. Chrome 70 is using for TLS 1.3 rfc final.
You can check if your version of Nginx is compiled against OpenSSL 1.1.1 or BoringSSL via command
nginx -V
example my Centmin Mod Nginx 1.15.5 build with OpenSSL 1.1.1 on CentOS 7.5
nginx -V
nginx version: nginx/1.15.5 (141018-121711)
built by gcc 8.2.1 20181012 (GCC)
built with OpenSSL 1.1.1 11 Sep 2018
TLS SNI support enabled
I was unable to successfully compile OpenSSL 1.1.1 on Ubuntu 18.04
However, CentOS 7.5 worked like a charm.
Both were able to compile NGINX.
[root@localhost nginx]# nginx -V
nginx version: nginx/1.15.5 (CentOS)
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
built with OpenSSL 1.1.1 11 Sep 2018
TLS SNI support enabled
…
OpenSSL 1.1.1 is now included in Ubuntu release 18.10
(released yesterday - October 18, 2018)
[Support will end in April 2019 (Six months from now) for 18.10]
But it seems like a much simpler solution… nothing to compile!
If you need TLSv1.3 and use Ubuntu: You could install/upgrade to version 18.10 which should be able to install NGINX and support TLSv1.3 right from the repos (apt-get install openssl nginx).
I may test an upgrade to 18.10 later and reply with any findings.
(when the repos allow for it - do-release-upgrade returning “No new release found.”)
You should give more detail to better understand your situation…
That was the first thing I tried; but it failed, and it continued to fail (in the exact same way) when I tried to compile OpenSSL 1.1.1 - so my trouble was with OpenSSL and Ubuntu 18.04.1…