已部署 SSL 的域名 CNAME 到另一个部署了 SSL 的域名,为什么会提示不安全?

2018-12-26 22:56:47 +08:00
 liuzhen

提示如下: 此服务器无法证明它是 a.cn ;其安全证书来自*.b.com 。出现此问题的原因可能是配置有误或您的连接被拦截了。

场景: a.cn 是老域名,b.com 是新域名,两个都有单独的 ssl 证书。 app 上的接口都是指向 a.cn ,我就把 a.cn CNAME 到 b.com ,然后 iOS 的 app 全部无法请求接口了

7518 次点击
所在节点    SSL
15 条回复
aa6563679
2018-12-26 23:02:45 +08:00
因为 cname 不是 https,也就不能进行域名验证
lhx2008
2018-12-26 23:06:09 +08:00
cname 只是把你 b 的 IP 解析到 a 了
你这种情况应该用 301
heww
2018-12-26 23:07:19 +08:00
cname 是 dns 层面的东西,它告诉 dns server a.cn 的 dns 解析和 d.cn 是一样的。
flowfire
2018-12-26 23:23:06 +08:00
ssl 证书是证明 a.cn 这个域名对应 a 这个 ip,b.com 这个域名对应 b 这个 ip,你把 a cname 到 b,用的是 b 的证书,浏览器发现,证书里写的 ip 是对的,域名是错的,就会报错
heww
2018-12-26 23:31:26 +08:00
@flowfire 证书和 IP 没有关系吧
yingfengi
2018-12-26 23:31:31 +08:00
@flowfire ssl 证书不验证 IP
MonoLogueChi
2018-12-27 00:10:16 +08:00
cname 是 DNS 方面的,你的配置是,告诉大家,a.com 指向 b.com 同一个服务器,你这里有两种方案,第一种是 a 反向代理 b,并且给 a 配置好域名。另一种方案是重写 host,跳转到 b。
MonoLogueChi
2018-12-27 00:15:01 +08:00
@flowfire 证书验证域名不验证 IP,你通信用的是 a 的公钥,但是服务端部署的是 b 的私钥,这样证书就会出问题,和 IP 没有一毛钱的关系
Rezark
2018-12-27 08:47:04 +08:00
如果 a.cnb.com 都有控制权,可以申请一张多域名的的证书包含这两个域名,在 b.com 的服务器上面部署,即可解决上面的问题。
whileFalse
2018-12-27 08:49:43 +08:00
* 在 B server 上同时部署 a 和 b 的 ssl 证书
* 在 A server 上做反代
flowfire
2018-12-27 09:38:51 +08:00
@MonoLogueChi 通信用的是 b 的公私钥,只是因为证书中记录的域名和使用的域名不相同,才会报错
MonoLogueChi
2018-12-27 18:34:18 +08:00
@flowfire #11 你访问的域名是 a,怎么会用 b 的公钥呢,cname 只是域名解析,不是域名跳转
flowfire
2018-12-27 18:37:56 +08:00
@MonoLogueChi #12 公私钥都是放在服务器上的,你访问的是 B 的服务器,用的就是 B 的公钥
siteng
2018-12-28 10:34:39 +08:00
b 服务器设置 a 请求 301 到 b 不行吗?
keyfunc
2019-01-02 15:55:08 +08:00
我怎么感觉楼主就一台服务器,2 个域名 2 张证书呢,你直接在一台服务器上加 2 张证书不就行了,不支持 SNI 的老客户端可能会报错,但现在基本很少。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/521338

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX