当前位置:首页 > 财经 > 互联网 > 正文

阿里云CDN开启https加速后出现502无法访问原因分析

来源:聚财网 | 2019-03-28 00:39:25 作者:

阿里云CDN开启https加速后出现502无法访问原因分析:CDN服务器访问源站时,因为没有不支持SNI,而我的服务器也正好是通过LANMP配置的,上面跑了不止一个域名,而且另外几个域名也配置了https,导致CDN服务器一直无法访问源站,取到想要的信息,所以就出现了开头的502错误。

最后我想说的是如果我想在阿里云CDN开启https加速,唯一可行的做法是CDN与源站直接采用http协议,且不说我本来就想实现全程https加密,而且如果这样配置的话,还需要将wordpress配置为同时支持http和https,颇为麻烦,所以只能就此作罢,因为暂时实在不想折腾了。

2018/11/11更新

现在阿里已经支持sni配置了,不过不是默认的,需要提交工单。

一个主机配置了多个https域名的用户,提交工单申请开通sni回源即可。

风险提示:SNI可能引发的HTTPS访问异常。

什么是SNI?

随着 IPv4 地址的短缺,为了让多个域名复用一个 IP,在 HTTP 服务器上引入了虚拟主机的概念。服务器可以根据客户端请求中不同的 host,将请求分发给不同的域名(虚拟主机)来处理。

但是,在一个被多个域名(虚拟主机)共享 IP 的 HTTPS 服务器中,由于在握手建立之前服务器无法知道客户端请求的是哪个 host,所以无法将请求交给特定的虚拟主机。然而,要完成握手,又必须读取虚拟主机中配置的证信息。

Server name indication(简称,SNI)就是用来解决这个矛盾问题的。SNI 要求客户端在与服务器握手时就携带需要访问的域名的 host 信息。这样,服务器就知道需要用哪个虚拟主机的证书与客户端握手并建立 TSL 连接。

SNI 最早在 2004 年被提出,目前主流的浏览器、服务器和测试工具都已支持 SNI。

为什么使用高防 IP / WAF 必须要求客户端支持 SNI?

高防 IP 和 WAF 服务在反向代理 HTTPS 业务时,需要代理客户端去和真实服务器(RS)进行交互,所以需要在配置 HTTPS 防护时上传证书和私钥。真实的高防 IP 和 WAF 服务器的数量是有限的,面对数以万计的域名显然无法实现一个域名一台物理服务器的配置,所以整个高防 IP 和 WAF 服务集群必然存在多个域名复用相同的服务器。因此,客户端必须支持 SNI,才能与高防 IP 和 WAF 进行正常交互。

如果使用不支持 SNI 的浏览器访问高防IP 或 WAF 服务防护的网站,高防 IP 和 WAF 因无法确认客户端请求的是哪个域名,无法调取对应的虚拟主机证书与客户端交互,只能使用内置的缺省证书与客户端连接。在这种情况下,在客户端浏览器上会出现“服务器证书不可信”的提示。
更多>>精彩图片