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

iOS 开发-请教下 Alamofire 的证书验证策略

  •  
  •   Bananana · 2022-08-02 08:40:10 +08:00 via iPhone · 1394 次点击
    这是一个创建于 843 天前的主题,其中的信息可能已经有所发展或是发生改变。
    对 Alamofire 设置了公钥验证模式,.pinPublicKeys ,如果证书一段时间后过期了,ssl 还能成功握手吗?我司证书一年的
    jasonnz
        1
    jasonnz  
       2022-08-02 08:46:14 +08:00
    過期了,肯定不能啦。
    Bananana
        2
    Bananana  
    OP
       2022-08-02 08:54:34 +08:00 via iPhone
    @jasonnz 请问有啥好办法吗,如果证书快过期了,只能 app 发版解决吗。但这样老版本也会有问题啊
    Bananana
        3
    Bananana  
    OP
       2022-08-02 09:02:14 +08:00
    看到网上一篇帖子对 publicKey 的解释,说只要公钥不变,就可以一直使用,不用更新证书,不用担心证书过期了。
    这个有朋友知道是真的吗

    2 、公钥验证模式:
    如果采用公钥验证模式,则使用 .pinPublicKeys 这个枚举值,第一个参数传公钥,其他参数和证书验证模式一样:
    case pinPublicKeys(publicKeys: [SecKey], validateCertificateChain: Bool, validateHost: Bool)
    复制代码第一个参数直接传递 Alamofire 提供给我们的 ServerTrustPolicy.publicKeys() 方法即可。公钥验证模式的好处是,只要公钥不变,就可以一直使用,不用更新证书,不用担心证书过期了。

    作者:凡几多
    链接: https://juejin.cn/post/6844903925770878989
    来源:稀土掘金
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    dzdh
        4
    dzdh  
       2022-08-02 10:11:30 +08:00
    更换证书时不更换私钥。就不影响。

    在申请证书时候的 CSR 是包含了你私钥对应的 PublicKey 的。pin 的也是这个。

    但是如果一旦更换了私钥,就是证书续期的时候重新生成了个私钥,那就有影响了。
    crackid
        5
    crackid  
       2022-08-02 11:42:37 +08:00
    只要续签证书的时候记得拿你 pin 的公钥来生成 csr ,这样新证书的公钥是不变的,你代码验证就能通过
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4068 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:30 · PVG 13:30 · LAX 21:30 · JFK 00:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.