升级nginx支持TLSv1.2 TLSv1.3

这些天公司系统请了一些搞渗透测试的,检测出网站“弱加密算法”,原因是之前的环境,nginx版本太低,只支持TLSv1.0 和TLSv1.1。所以现在想要配置TLSv1.2 TLSv1.3,则需要升级nginx,其中还包括了升级openssl,增加了http_v2_module 模块来支持http2。这其中增加的http_v2_module 模块可以在升级nginx的时候一起添加进去,因为我之前不知道,所以后面多了个单独增加http_v2_module 模块进行重新编译。

一、升级nginx版本

直接参考这篇文章:https://blog.csdn.net/weixin_45414913/article/details/124801803

二、升级openssl

1.查看openssl版本

openssl version

2.下载最新稳定版本的OpenSSL源码包。

wget https://www.openssl.org/source/openssl-1.1.1i.tar.gz

这里要是下载不了的话可以手动下载完了再用ftp拖到服务器中

3.编译源码安装

tar -xzvf openssl-1.1.1i.tar.gz
cd openssl-1.1.1i
./config
make && make install

然后另起一个服务器窗口,检查一下openssl版本,不出意外的话会报:openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory错误,
执行下面命令:

ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

安装成功

三、增加http_v2_module 模块

1.查看nginx原有的模块

/usr/local/nginx/sbin/nginx -V

image.png

后面的--with-http_v2_module就是配置好的时候出现的

2.我们的新配置信息就应该这样写,运行下面的命令即可,等配置完。

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module

有可能会报错:SSL modules require the OpenSSL library.You can either do not enable the modules

我的情况是系统自带了openssl 1.0.1,然后又自己装了openssl 1.1.1,就出这个问题了。然后执行:yum remove openssl-devel卸载就好了

3.编译【特别注意】这里不要进行make install,否则就是覆盖你之前的安装

make

4.备份原有已安装好的nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

5.将刚刚编译好的nginx覆盖掉原有的nginx(这个时候【特别注意】这里nginx要停止状态)

/usr/local/nginx/sbin/nginx -s stop

cp ./objs/nginx /usr/local/nginx/sbin/

6.启动nginx,仍可以通过命令查看是否已经加入成功

这时候启动Nginx不要用 ./nginx -s reload,会报pid相关的错误,正确的启动方式:/usr/local/nginx/sbin/nginx 即可。

四、配置TLSv1.2 TLSv1.3

参考链接:https://ssl-config.mozilla.org/#server=nginx&version=1.20.2&config=intermediate&openssl=1.1.1i&hsts=false&ocsp=false&guideline=5.6

image.png

验证nginx是否支持TLS 1.3

我们可以通过 nginx -t 命令来验证nginx是否支持TLS 1.3:

如果nginx支持TLS 1.3,将会输出下面的信息 [[email protected] ~]$ nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

如果nginx不支持TLS 1.3,将会输出下面的信息 [[email protected] /data/log]$ nginx -t

nginx: [warn] invalid value "TLSv1.3" in /etc/nginx/conf.d/default.conf:12

nginx: configuration file /etc/nginx/nginx.conf test failed

五、工具检测

工具1:https://www.ssllabs.com/ssltest/analyze.html?d=h5-saic.matrixpr.net

image.png

工具2:https://geekflare.com/tools/tests/13p0ccp6a

image.png

参考:

https://blog.csdn.net/weixin_45414913/article/details/124801803
https://blog.csdn.net/inthat/article/details/122829324
https://blog.csdn.net/u010058695/article/details/122948842
https://blog.csdn.net/qq_36902628/article/details/118997046
https://blog.csdn.net/qubes/article/details/120546123
https://blog.csdn.net/qq_35624642/article/details/126442054
https://blog.csdn.net/weixin_44972135/article/details/106621593
https://www.265.me/read-25.html
https://blog.csdn.net/qq_34939308/article/details/120688177
http://www.yaotu.net/biancheng/785.html

你可能感兴趣的:(升级nginx支持TLSv1.2 TLSv1.3)