美文网首页
升级nginx支持TLSv1.2 TLSv1.3

升级nginx支持TLSv1.2 TLSv1.3

作者: 洗耳恭听_kai | 来源:发表于2022-10-31 19:48 被阅读0次

    这些天公司系统请了一些搞渗透测试的,检测出网站“弱加密算法”,原因是之前的环境,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,将会输出下面的信息 [root@iteblog.com ~]$ 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,将会输出下面的信息 [root@iteblog.com /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

          本文链接:https://www.haomeiwen.com/subject/gjcdtdtx.html