情况

有一个域名 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