Nginx с TLS 1.3

Пытаясь использовать сертификаты TLS 1.3 в Nginx (1.15.8), я обнаружил, что официальный Nginx был собран с openssl 1.1.0, тогда как для TLS 1.3 необходим openssl 1.1.1.

Чтобы решить эту проблему, я создал свой собственный openssl 1.1.1 из исходных кодов, а затем nginx из исходных кодов (используя только что созданный openssl). Работает отлично. НО - мне не удалось найти ни одного официального дистрибутива Nginx со встроенной поддержкой. В Debian или любом другом Linux.

Кто-нибудь когда-нибудь пробовал это и нашел официальное готовое решение?

РЕДАКТИРОВАТЬ: мое решение на основе Docker в https://github.com/eldada/nginx-tls13-docker.


person Eldad Assis    schedule 31.01.2019    source источник
comment
та же проблема на macOS здесь с Nginx 1.15.12. Создан с использованием OpenSSL 1.0.2r (26 февраля 2019 г.). Вы бы порекомендовали просто построить @Eldad локально?   -  person rustyMagnet    schedule 24.04.2019
comment
Вы запускаете Nginx прямо на своем Mac? Вы бы открыли для себя Docker? Если да, см. Мое решение: github.com/eldada/nginx-tls13-docker   -  person Eldad Assis    schedule 24.04.2019
comment
Я бы определенно попробовал ваш план! Но я, как и вы, построил все это из исходников, прежде чем прочитал ваш ответ: o) Я мог бы сэкономить много времени, если бы сначала прочитал это: gist.github.com/beatfactor/a093e872824f770a2a0174345cacf171   -  person rustyMagnet    schedule 24.04.2019


Ответы (2)


ОБНОВЛЕНИЕ: с выпуском Ubuntu 18.04.3, который включает OpenSSL 1.1.1, TLS 1.3 теперь поддерживается в NGINX 1.14 и новее.

На момент написания этой статьи существует три дистрибутива с OpenSSL 1.1.1 и NGINX 1.15: Ubuntu 18.10 (который не является выпуском LTS), FreeBSD 12.0 и Alpine 3.9.

Есть планы перенести 18.04 (который является выпуском LTS) на OpenSSL 1.1.1, но в настоящее время существует открытая ошибка, отслеживающая ее включение: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1797386 К сожалению, OpenSSL 1.1.1 не появился в Ubuntu 18.04 .2, который был выпущен.

person Joe    schedule 17.02.2019

Я обнаружил, что Nginx создает и отправляет свой двоичный файл с тем же openssl, что и в целевом дистрибутиве.

Пакеты в репозитории nginx скомпилированы с использованием OpenSSL, поставляемого по умолчанию в конкретной ОС. Таким образом, nginx в Debian 9 скомпилирован с OpenSSL 1.1.0f.

OpenSSL 1.1.1 в настоящее время доступен в Ubuntu 18.10, а соответствующий пакет nginx, доступный на nginx.org, построен с OpenSSL 1.1.1.

Это взято из ответа форума nginx.

person Eldad Assis    schedule 03.02.2019