Несмотря на то, что у меня есть последняя версия nginx, и OpenSSL не дает TLS1.3 на моем сервере (www.baldeonline.com для справки), хотя он включен в моих файлах конфигурации. Кроме того, мой экземпляр nginx был скомпилирован с установленным OpenSSL 1.1.1-pre9.
$ nginx -V
возвращает:
nginx version: nginx/1.15.2
built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
built with OpenSSL 1.1.1-pre9 (beta) 21 Aug 2018
Большинство руководств, которые я видел до сих пор, включают CloudFlare, поэтому я подозреваю, что в этом случае он работает как TLS1.2 между сервером и CloudFlare, а затем TLS1.3 между CloudFlare и клиентом, хотя у меня нет ничего конкретного, чтобы предложить это.
РЕДАКТИРОВАТЬ
Как упомянул Патрик, запустив команду:
$ openssl s_client -connect www.baldeonline.com:443
показывает, что TLS1.3 включен. TLS1.3 должен работать с браузерами, когда они обновляются для полной поддержки окончательного стандарта TLS1.3 (15 августа 2018 г.), а не только черновиков стандартов.
Для заинтересованных:
https://wiki.openssl.org/index.php/TLS1.3#Current_status_of_the_TLSv1.3_standard
Хотя последние версии 1.1.1 поддерживают последнюю стандартную версию, другие приложения, поддерживающие TLSv1.3, могут по-прежнему использовать более старые черновые версии. Это частый источник проблем совместимости. Если два одноранговых узла, поддерживающих разные черновые версии TLSv1.3, попытаются связаться, они вернутся к TLSv1.2.
TL; DR: Если хотите, чтобы TLS1.3 работал сейчас с черновиком 28 используйте OpenSSL 1.1.1-pre8 https://fearby.com/article/enables-tls-1-3-ssl-on-a-nginx-website-on-an-ubuntu-16-04-server-that-is-using-cloudflare/ Перейдите к пункту «Пора обновить Open SSL» и используйте https://www.openssl.org/source/openssl-1.1.1-pre8.tar.gz вместо git clone.
В OpenSSL 1.1.1-pre9 вся черновая поддержка, кроме финальной версии TLS1.3, была удалена. Однако браузеры поддерживают только черновые версии.