报错提示: *1871 SSL_do_handshake() failed (SSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure) while SSL handshaking to upstream
场景:
今天开发反馈跟携程那边有个项目合作,需要应用能访问对方的域名。
由于我们的应用是部署在内网,只能通过nginx做个代理才能访问到对方的域名,本着多年背锅经验,一个nginx配置信手拈来:
配置完nginx潇洒 ./sbin/nginx -s reload, 然后就坐等开发喊666了,结果开发跑过来说报502错误…
WTF, 502 ??
我信你个鬼,你们这些开发坏的很,我自己试试
哦豁,看来人与人之间应该要多一点信任。
但是,这是为啥呢?
换个域名试试,
你们是不是在想携程的域名有问题?不是哦,这域名是可以访问的。
这个时候只能翻一下错误日志,看看有什么有用的提示
可以看到nginx错误日志里面有一串看不懂的报错提示和我们访问情况,
nginx把域名解析成了一个ip地址,当我试着直接通过ip去访问时,果然报错了。
只能通过域名去访问,让我想起来了nginx同端口不同域名及禁用未绑定域名访问的配置,确实可以实现,这是https的SNI问题,大家可以自行查阅资料。
解决方案
为解决这个问题,nginx官方给出了一个参数配置。
我们把这个配置加到nginx里面,
reload,尝试访问,
搞定!!