Пересборка Nginx с OpenSSL 1.1.0f для поддержки алгоритмов шифрования CHACHA20 и Poly1305.

В марте я написал про установку Nginx из исходников. Эту статью можно считать ее продолжением, сегодня речь пойдет о пересборке той же версии Nginx, с теми же опциями, но с добавлением кастомного OpenSSL, для поддержки алгоритмов шифрования CHACHA20 и Poly1305.

Для начала нужно скачать архив с исходниками OpenSSL.

Переходим в рабочий каталог
cd /usr/local/src

Скачиваем архив с исходниками OpenSSL
wget https://www.openssl.org/source/latest.tar.gz -O openssl-1.1.0.tar.gz

Распаковываем архив.

tar -zxvf openssl-1.1.0.tar.gz

Теперь перейдем в каталог с исходниками сервера, оставшийся с прошлой установки.

cd /usr/local/src/nginx-1.11.10

Чтобы задать новую конфигурацию, нужно узнать или вспомнить старую, и добавить в нее расположение библиотек OpenSSL. Чтобы просмотреть конфигурацию с которой был собран сервер можно выполнить команду nginx -V, она будет указана в строке configure arguments.

nginx -V
nginx version: nginx/1.11.10
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 
built with OpenSSL 1.0.2g  1 Mar 2016
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --user=nginx --group=nginx --without-http_autoindex_module --without-http_ssi_module --without-http_scgi_module --without-http_uwsgi_module --without-http_geo_module --without-http_split_clients_module --without-http_memcached_module --without-http_empty_gif_module --without-http_browser_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_mp4_module --with-http_auth_request_module --with-http_stub_status_module --with-http_random_index_module --with-http_gunzip_module --with-threads

Добавим опцию указывающую расположение библиотек OpenSSL, тот самый каталог который скачали вначале.

--with-openssl=/usr/local/src/openssl-1.1.0f

Задаем новую конфигурацию.

./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --user=nginx --group=nginx --without-http_autoindex_module --without-http_ssi_module --without-http_scgi_module --without-http_uwsgi_module --without-http_geo_module --without-http_split_clients_module --without-http_memcached_module --without-http_empty_gif_module --without-http_browser_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_mp4_module --with-http_auth_request_module --with-http_stub_status_module --with-http_random_index_module --with-http_gunzip_module --with-threads --with-openssl=/usr/local/src/openssl-1.1.0f

Компилируем.

make

Устанавливаем. Перед установкой сделайте копии конф. файлов, на всякий случай.

make install

По завершению установки посмотрим что у нас получилось.

nginx -V
nginx version: nginx/1.11.10
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 
built with OpenSSL 1.1.0f  25 May 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --user=nginx --group=nginx --without-http_autoindex_module --without-http_ssi_module --without-http_scgi_module --without-http_uwsgi_module --without-http_geo_module --without-http_split_clients_module --without-http_memcached_module --without-http_empty_gif_module --without-http_browser_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_mp4_module --with-http_auth_request_module --with-http_stub_status_module --with-http_random_index_module --with-http_gunzip_module --with-threads --with-openssl=/usr/local/src/openssl-1.1.0f

Было.

built with OpenSSL 1.0.2g  1 Mar 2016

Стало.

built with OpenSSL 1.1.0f  25 May 2017

После установки перезапустите сервер и если нет никаких ошибок, то все в порядке, сервер пересобран.

Ответить:

Please enter your comment!
Please enter your name here