V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
如果你希望学习 CDN 相关知识,那么建议你可以遍历以下软件的说明文档。
NGINX
cURL
paullee
V2EX  ›  CDN

域名托管在 Cloudflare,购买了他家$5/mo 的 ssl。问题来了, iOS 开启 HTTPS 时,要导入的证书在哪儿呢?各位大神是怎么化解的?

  •  
  •   paullee · 2017-11-28 12:11:50 +08:00 · 4868 次点击
    这是一个创建于 2550 天前的主题,其中的信息可能已经有所发展或是发生改变。
    场景:
    1. 域名 api.xxx.com
    2. 域名托管在 cloudflare 上,开启了 CDN,配置了 FULL 规则的 SSL
    3. 浏览器访问 https://api.xxx.com 无问题
    4. 现在 iOS 调用 https 接口是,研发哥哥告诉我需要提供 ssl 证书给他导入
    5. 这我就很懵逼了,我购买 cloudflare 时,它并没有提供任何 SSL 证书下载地址呀
    6. 已谷歌,CLoudflare 发 ticket 了,摸索一上午了都毫无头绪才来求教各路伙伴
    7. 使用腾讯提供的“苹果 ATS 检测”,检测结果全都通过

    问题:
    1. 各位大神遇到这种场景都是怎么化解的呢?
    2. 我不是搞 iOS 研发,我也不是运维。但我真心求教这个问题怎么搞?
    第 1 条附言  ·  2017-11-28 16:03:29 +08:00
    谢谢各位,已经按照 3 楼提供的方式,在 windows 系统下用 Chrome 导出一份证书了。
    现在 App 的 https 接口已调通。
    -------------------------------------
    结贴
    18 条回复    2017-12-03 11:35:14 +08:00
    Daylight1993
        1
    Daylight1993  
       2017-11-28 12:13:33 +08:00
    购买证书肯定有下载证书的地方的
    paullee
        2
    paullee  
    OP
       2017-11-28 12:15:01 +08:00
    @Daylight1993 一般来说是有下载的,可是 Cloudflare 这家弄死没找到下载证书的地方,我已经怀疑他家买的不是真正的证书了。
    zpf124
        3
    zpf124  
       2017-11-28 12:19:08 +08:00   ❤️ 1
    有那么麻烦么...
    浏览器访问域名,然后导出不行吗?
    zpf124
        4
    zpf124  
       2017-11-28 12:25:24 +08:00
    然后,我不是 ios 程序猿多问一句啊,

    ios 应用 https 不是通过访问去获取证书,再通过证书链去 ca 那验证证书是否可信,
    而是通过 应用内置受信任的证书来验证 https 可信的?
    paullee
        5
    paullee  
    OP
       2017-11-28 12:27:37 +08:00
    @zpf124 哇,多谢,我之前在 Mac 下,各个浏览器都湿了,就是没找到保存文件的地方。刚才去 Window 系统下弄了一份下来。多谢,期望能解决问题
    paullee
        6
    paullee  
    OP
       2017-11-28 12:28:42 +08:00
    @zpf124 我也不是 iOS,这个问题我回答不了。我原本也以为是浏览器这种验证逻辑的
    ryd994
        7
    ryd994  
       2017-11-28 14:22:42 +08:00
    拜托……那是人家送的多域名啊
    你要自己可导出私钥的证书的话,有花钱买单域名独立证书
    然而一般只是需要内嵌公钥用于验证而已
    建议下根证书,不然过两天 CF 换了证书你就傻了
    https://support.cloudflare.com/hc/en-us/articles/218689638-What-are-the-root-certificate-authorities-CAs-used-with-Cloudflare-Origin-CA-
    jasontse
        8
    jasontse  
       2017-11-28 14:25:47 +08:00 via iPad
    难道你家的 App 是静态写死证书?真有意思。
    alect
        9
    alect  
       2017-11-28 15:37:45 +08:00
    cf 送的证书没法导出,就算是浏览器导出的也仅仅是证书没有私钥
    ruimz
        10
    ruimz  
       2017-11-28 15:46:28 +08:00 via Android
    @ryd994
    @alect
    好奇问一句:你们回帖都不看标题吗?怎么看出来楼主用的是送的证书的了。
    mornlight
        11
    mornlight  
       2017-11-28 15:50:02 +08:00
    iOS 那边需要证书通常是想把公钥 Pin 在代码里,不想被人抓包。导出公钥就行了,不过这种场景建议自己买证书,不然公钥一变客户端就 gg 了。
    paullee
        12
    paullee  
    OP
       2017-11-28 15:53:48 +08:00
    @ryd994
    @jasontse
    @alect
    @ruimz

    谢谢各位,已经按照 3 楼提供的方式,在 windows 系统下用 Chrome 导出一份证书了。确实只是需要导入到 App 中验证一下即可。

    另,现在 App 的 https 接口已调通。
    -------------------------------------
    结贴
    paullee
        13
    paullee  
    OP
       2017-11-28 15:57:45 +08:00
    @mornlight 求教,在 Cloudflare 家购买的“ Dedicated SSL Certificates ” $5/mo, 导出的证书显示有效期为 1 年。这个问题应该也不大了吧。快到期前更新证书是不是就可以了哇?
    mornlight
        14
    mornlight  
       2017-11-28 16:03:14 +08:00
    @paullee #13 但是你怎么保证用户会及时更新你的 App 客户端呢?如果用老的客户端,服务端证书一换,完了。
    paullee
        15
    paullee  
    OP
       2017-11-28 16:06:45 +08:00
    @mornlight 求教,这种场景可有一劳永逸的解决方案。因为现在我看到其他家卖的证书基本都是有一个有效期的,他们同样会遇到证书到期的问题。那这些证书用户一样会遇到这个场景的哇
    mornlight
        16
    mornlight  
       2017-11-28 16:17:54 +08:00
    @paullee #15 买证书,用自己生成的公钥去签。证书到期后还能接着用这个公钥签新证书,客户端不用变。我印象中是这样子的流程。
    alect
        17
    alect  
       2017-11-28 18:00:34 +08:00
    @ruimz cf 的证书可不就是相当于送的证书?哪里理解错误?
    哦,你是说他花了五刀? 那也是部署在 cf 服务器上的不给私钥。
    所以我说是送的。。
    holulu
        18
    holulu  
       2017-12-03 11:35:14 +08:00
    cf 哪有 5 刀每月的套餐。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1093 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:50 · PVG 02:50 · LAX 10:50 · JFK 13:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.