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

2018-04-21 03:10:31 7915

protocol) while SSL handshaking, client: 111.118.13.178, server: 8.8.8.8:443
1818/83/88 15:41:41 [crit] 16148#8: 3467879 SSL_do_handshake() failed (SSL: error:14876181:SSL routines:SSL13_GET_CLIENT_HELLO:unsupported protocol) while SSL handshaking, client: 111.189.181.34, server: 8.8.8.8:443
1818/83/88 15:41:45 [crit] 16143#8: 3468518 SSL_do_handshake() failed (SSL: error:14876181:SSL routines:SSL13_GET_CLIENT_HELLO:unsupported protocol) while SSL handshaking, client: 111.189.181.34, server: 8.8.8.8:443
1818/83/88 15:41:87 [crit] 16148#8: 3474471 SSL_do_handshake() failed (SSL: error:14876181:SSL routines:SSL13_GET_CLIENT_HELLO:unsupported protocol) while SSL handshaking, client: 111.118.13.178, server: 8.8.8.8:443
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协议进行升级。
随着SSLv3 SSLv2协议的众多漏洞与诟病,已经很多浏览器默认不再支持此协议,以上的错误也说明了upstream服务器已经不再支持这两种协议,两端进行TLS协议的握手,只有版本号一致才能够成功,那么则在nginx端也必须配置与upstream服务器一致的版本号,则修改nginx的配置文件nginx.conf,修改如下:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
重新启动nginx服务器后,即可以顺利地访问upstream端的服务了。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: