Nginx由于TLS支持版本配置过低造成不能够正常访问Upstream服务器的问题

本文介绍了解决Nginx在HTTPS连接中出现TLS握手失败的问题,通过更新ssl_protocols配置来匹配上游服务器的TLS版本,从而解决了因版本不一致导致的连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/****************************************
* Author : Samson
* Date : 03/09/2016
* Test platform:
* gcc 4.8.4
* GNU bash, 4.3.30
* Linux Mint 17
* **************************************/


在Nginx使用过程中,结果在https连接进行握手的过程中,出现了如下的错误:

SSL_do_handshake() failed (SSL: error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:SSL alert number 70) while SSL handshaking

应该是协议的版本号的问题,经查,是由于Nginx要访问的upstream服务器的TLS的版本已经进行了升级,而nginx的配置中并没有对支持的TLS协议进行升级,nginx原来的配置如下:
ssl_protocols SSLv2 SSLv3 TLSv1;

随着SSLv3 SSLv2协议的众多漏洞与诟病,已经很多浏览器默认不再支持此协议,以上的错误也说明了upstream服务器已经不再支持这两种协议,两端进行TLS协议的握手,只有版本号一致才能够成功,那么则在nginx端也必须配置与upstream服务器一致的版本号,则修改nginx的配置文件nginx.conf,修改如下:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

重新启动nginx服务器后,即可以顺利地访问upstream端的服务了。

REF:

1966
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值