给Nginx上ChaCha20-Poly1305加密套件

in Tutorials with 2 comments

上一篇提到给 OpenSSL 升级和给它添加 ChaCha20-Poly1305 的加密套件,所以这篇文章就是给Nginx编译新的 OpenSSL 让其也支持 ChaCha20-Poly1305 的加密套件。本篇教程也在本站linpx.com上实践与应用,另外教程只在CentOS 7实战过。

首先,我们需要下载最新版的 Nginx 的源码

cd /usr/src
wget http://nginx.org/download/nginx-1.9.12.tar.gz
tar -xzvf nginx-1.9.12.tar.gz

查看自己的Nginx的configure arguments有哪些,下一步的安装编译需要用到

nginx -V
nginx version: nginx/1.9.11
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-ld-opt='-ljemalloc'

知道自己的configure arguments后,复制后面的configure,下面编译需要

在编译的时候,configure需要带上 --with-openssl=/usr/src/openssl-1.0.2g,如

--prefix=/usr/local/nginx --user=www --group=www --with-openssl=/usr/src/openssl-1.0.2g --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-ld-opt='-ljemalloc'

开始安装编译

cd nginx-1.9.12
./configure --prefix=/usr/local/nginx --user=www --group=www --with-openssl=/usr/src/openssl-1.0.2g --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-ld-opt='-ljemalloc'
make
make install

检查

nginx -V
nginx version: nginx/1.9.12
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
built with OpenSSL 1.0.2g  1 Mar 2016
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-openssl=/usr/src/openssl-1.0.2g --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-ld-opt=-ljemalloc

至此,我们实现了升级Nginx和给Nginx配上支持有 ChaCha20-Poly1305 的OpenSSL。

Responses
  1. Evin Evin

    为什么我哦编译的时候 会告诉我 ./configure: error: invalid option "--with-http_spdy_module"

    Reply
    1. @Evin

      没有这个SPDY模块,其实HTTP/2的前身是SPDY,升级Nginx 如果开启 HTTP/2 建议用 --with-http_v2_module 这个模块····

      Reply