原文链接:http://www.51itstudy.com/69497.html


在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端的服务了

欢迎留言