iOS NSPinnedDomains公钥固定是否支持设置有效期属性?
结论
iOS 原生基于 Info.plist 配置的 NSPinnedDomains 公钥哈希固定能力,不提供类似安卓端的内置有效期配置选项。
差异说明
安卓 Network Security Config 原生支持在 pin-set 标签中通过 expiration 属性指定固定配置的过期时间,过期后系统会自动忽略对应公钥固定规则;但苹果的公钥固定设计中没有提供对应的配置字段,所有配置在 NSPinnedDomains 下的固定规则会在当前应用版本中永久生效。
可选替代方案
如果需要实现公钥固定的有效期控制,可选择以下两种方案:
- 依赖应用发版迭代更新固定配置:每次应用发版前,同步校验即将过期的公钥哈希,更新 Info.plist 中的
NSPinnedDomains配置,用户更新应用后自动生效新的固定规则 - 自行实现动态公钥固定逻辑:不使用系统原生的
NSPinnedDomains配置,在 URLSession 的证书校验回调方法中自行实现公钥哈希校验逻辑,同时在本地存储固定规则的有效期,到达指定时间后自动切换或停用旧的固定规则
内容的提问来源于stack exchange,提问作者Jan Rzepiszczak
相关产品推荐
相关产品推荐

