fix SSL_do_handshake tls error

56#56: *8262995 SSL_do_handshake() failed (SSL: error:0A00010B:SSL routines::wrong version number) while SSL handshaking to upstream, client: xx, server: yy,

这个报错是因为转发到的后端证书错误
nginx中有配置proxy_ssl_server_name来修复这个问题:

Syntax: 	proxy_ssl_server_name on | off;
Default: 	

proxy_ssl_server_name off;

Context: 	http, server, location

This directive appeared in version 1.7.0.

Enables or disables passing of the server name through TLS Server Name Indication extension (SNI, RFC 6066) when establishing a connection with the proxied HTTPS server. 

默认off,配置on即可解决这个问题,跟tls版本没关系。

这个问题是由于nginx默认通过ip转发到后端,但是后端可能有多个证书,是一个多servername的服务器,这个时候就需要开启proxy_ssl_server_name ,让nginx转发的时候带上host,这样后端即可正确识别到来访问的是那个域名。

posted @ 2024-11-26 13:45  过去的我  阅读(258)  评论(0)    收藏  举报