情况

有一个域名 1.a.com, 设置CNAME指向 1.b.com(此域名已经配置好https的CA证书), 访问1.a.com时显示你的连接不是专用连接

img

原因分析

https的证书主要记录了域名和IP的映射

我们简称1.a.com为域名a, IP为IPA. 1.b.com为域名b, IP为IPB.
由于CNAME并不涉及https验证, 它只是一个DNS流程, 所以最终客户端浏览器得到的结果如下:
IP: IPB
客户端host域名: 域名a
CA证书: IPB上的证书, 即域名b和IPB的映射

也就是说, 我们相当于拿着域名a访问了1.b.com的IP, 浏览器检验b的证书发现不对, 就会拦截

解决方法

临时方法:
直接无视风险继续访问, 或者键盘输入 thisisunsafe 即可

根源解决:
在IPb的服务器上, 额外配置域名a到IPb的CA证书, 比如在nginx多增设一个域名并更新证书.
或者在IPa的服务器上, 设置反向代理或者301重定向(301不支持https), 指向域名b