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,这样后端即可正确识别到来访问的是那个域名。

浙公网安备 33010602011771号