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

2022-08-02 08:40:10 +08:00
 Bananana
对 Alamofire 设置了公钥验证模式,.pinPublicKeys ,如果证书一段时间后过期了,ssl 还能成功握手吗?我司证书一年的
1173 次点击
所在节点    Apple
5 条回复
jasonnz
2022-08-02 08:46:14 +08:00
過期了,肯定不能啦。
Bananana
2022-08-02 08:54:34 +08:00
@jasonnz 请问有啥好办法吗,如果证书快过期了,只能 app 发版解决吗。但这样老版本也会有问题啊
Bananana
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
2022-08-02 10:11:30 +08:00
更换证书时不更换私钥。就不影响。

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

但是如果一旦更换了私钥,就是证书续期的时候重新生成了个私钥,那就有影响了。
crackid
2022-08-02 11:42:37 +08:00
只要续签证书的时候记得拿你 pin 的公钥来生成 csr ,这样新证书的公钥是不变的,你代码验证就能通过

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

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

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

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

© 2021 V2EX