V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liuzhen
V2EX  ›  SSL

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

  •  
  •   liuzhen · 2018-12-26 22:56:47 +08:00 · 7523 次点击
    这是一个创建于 2159 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    第 1 条附言  ·  2018-12-27 10:18:35 +08:00
    非常感谢各位大大的回复。

    现在的情况是 a.cn 没有控制权,他们只能 CNAME, 不能 301 到 b.com 这个域名

    在做不了 301 的情况下,还有其他方案吗?
    15 条回复    2019-01-02 15:55:08 +08:00
    aa6563679
        1
    aa6563679  
       2018-12-26 23:02:45 +08:00 via iPhone   ❤️ 1
    因为 cname 不是 https,也就不能进行域名验证
    lhx2008
        2
    lhx2008  
       2018-12-26 23:06:09 +08:00 via Android   ❤️ 1
    cname 只是把你 b 的 IP 解析到 a 了
    你这种情况应该用 301
    heww
        3
    heww  
       2018-12-26 23:07:19 +08:00   ❤️ 1
    cname 是 dns 层面的东西,它告诉 dns server a.cn 的 dns 解析和 d.cn 是一样的。
    flowfire
        4
    flowfire  
       2018-12-26 23:23:06 +08:00 via Android
    ssl 证书是证明 a.cn 这个域名对应 a 这个 ip,b.com 这个域名对应 b 这个 ip,你把 a cname 到 b,用的是 b 的证书,浏览器发现,证书里写的 ip 是对的,域名是错的,就会报错
    heww
        5
    heww  
       2018-12-26 23:31:26 +08:00
    @flowfire 证书和 IP 没有关系吧
    yingfengi
        6
    yingfengi  
       2018-12-26 23:31:31 +08:00 via Android
    @flowfire ssl 证书不验证 IP
    MonoLogueChi
        7
    MonoLogueChi  
       2018-12-27 00:10:16 +08:00 via Android
    cname 是 DNS 方面的,你的配置是,告诉大家,a.com 指向 b.com 同一个服务器,你这里有两种方案,第一种是 a 反向代理 b,并且给 a 配置好域名。另一种方案是重写 host,跳转到 b。
    MonoLogueChi
        8
    MonoLogueChi  
       2018-12-27 00:15:01 +08:00 via Android
    @flowfire 证书验证域名不验证 IP,你通信用的是 a 的公钥,但是服务端部署的是 b 的私钥,这样证书就会出问题,和 IP 没有一毛钱的关系
    Rezark
        9
    Rezark  
       2018-12-27 08:47:04 +08:00
    如果 a.cnb.com 都有控制权,可以申请一张多域名的的证书包含这两个域名,在 b.com 的服务器上面部署,即可解决上面的问题。
    whileFalse
        10
    whileFalse  
       2018-12-27 08:49:43 +08:00   ❤️ 1
    * 在 B server 上同时部署 a 和 b 的 ssl 证书
    * 在 A server 上做反代
    flowfire
        11
    flowfire  
       2018-12-27 09:38:51 +08:00 via Android
    @MonoLogueChi 通信用的是 b 的公私钥,只是因为证书中记录的域名和使用的域名不相同,才会报错
    MonoLogueChi
        12
    MonoLogueChi  
       2018-12-27 18:34:18 +08:00
    @flowfire #11 你访问的域名是 a,怎么会用 b 的公钥呢,cname 只是域名解析,不是域名跳转
    flowfire
        13
    flowfire  
       2018-12-27 18:37:56 +08:00
    @MonoLogueChi #12 公私钥都是放在服务器上的,你访问的是 B 的服务器,用的就是 B 的公钥
    siteng
        14
    siteng  
       2018-12-28 10:34:39 +08:00 via Android
    b 服务器设置 a 请求 301 到 b 不行吗?
    keyfunc
        15
    keyfunc  
       2019-01-02 15:55:08 +08:00
    我怎么感觉楼主就一台服务器,2 个域名 2 张证书呢,你直接在一台服务器上加 2 张证书不就行了,不支持 SNI 的老客户端可能会报错,但现在基本很少。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2732 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 06:53 · PVG 14:53 · LAX 22:53 · JFK 01:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.