已经安装 nginx 以将 OpenSSL 1.0.2 用于 ALPN?

已经安装 nginx 以将 OpenSSL 1.0.2 用于 ALPN?

我想使用 HTTP/2 并充分利用其功能。ALPN 捆绑在 OpenSSL 1.0.2 中,但 NGINX 似乎不使用它。似乎 OpenSSL 已经是 1.0.2l,我将 nginx 升级到 1.13.6,但它仍然使用 OpenSSL 1.0.1t。

# openssl version -v
OpenSSL 1.0.2l  25 May 2017

nginx -V
nginx version: nginx/1.13.6
built by gcc 4.9.2 (Debian 4.9.2-10)
built with OpenSSL 1.0.1t  3 May 2016 (running with OpenSSL 1.0.2l  25 May 2017)
TLS SNI support enabled

任何帮助 NGINX 使用 OpenSSL 1.0.2 或如何启用 ALPN 的帮助都将不胜感激。

答案1

我遇到了同样的问题。这是我的解决方案:

  1. 获取 nginx 当前版本

nginx -V

  1. 您获得了一些信息:

nginx 版本:nginx/1.14.2 由 gcc 4.9.2(Debian 4.9.2-10+deb8u1)构建,使用 OpenSSL 1.0.1t 构建,2016 年 5 月 3 日(使用 OpenSSL 1.0.2l 运行,2017 年 5 月 25 日)启用 TLS SNI 支持配置参数:--prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --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 --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

  1. 接下来让我们为下一步操作创建一些目录:

mkdir $HOME/nginx_http2

$HOME/nginx_http2 目录

  1. 现在我们必须下载相同版本的 Nginx。对我来说是 1.14.2

获得http://nginx.org/download/nginx-1.14.2.tar.gz

  1. 解压档案

tar xf nginx-1.14.2.tar.gz

  1. 转至解压文件夹

目录 nginx-1.14.2

  1. 现在您应该从“nginx -V”命令复制文本 - “configure parameters:”之后的所有文本并运行命令:

./configure <在此处输入复制的文本>

它看上去会像这样:

./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --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 --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

  1. 现在我们必须编译 nginx。请确保在运行这些命令时没有出现任何错误。如果出现任何错误,请不要调用下一个命令并尝试修复错误

制作

进行安装

/etc/init.d/nginx 重启

现在让我们检查一下我们的版本:

nginx -V

nginx version: nginx/1.14.2
built by gcc 4.9.2 (Debian 4.9.2-10+deb8u2) 
built with OpenSSL 1.0.2l  25 May 2017
TLS SNI support enabled
...

现在让我们检查一下 HTTP2 支持:

相关内容