AFNetworking SSL Pinning 过期证书

8
如果在iOS应用程序中使用了SSL Pinning,那么如何更新过期的SSL证书呢?似乎只有应用程序更新才能使证书得到更新,但是没有更新应用程序的用户将无法接收此更新。
2个回答

12

关键在于理解AFSecurityPolicypinningMode可能值

AFSSLPinningModeCertificate意味着服务器提供的证书必须完全匹配其中一个固定证书,这些证书默认在您的应用程序包中。这是您当前正在使用的模式。

AFSSLPinningModePublicKey表示服务器提供的证书必须包含与您的应用程序固定证书之一相同的公钥。

如果使用AFSSLPinningModePublicKey并使用相同密钥对更新服务器证书,则您的iOS应用程序将在无需修改的情况下继续工作。


你确定 AFSSLPinningModePublicKey 的意思是服务器必须由相同的密钥签名,而不是证书包含与参考密钥相同的公钥(这通常更有意义)吗? - Bruno
@Bruno 谢谢,我已经修改了解释以使其更清晰。 - David Snabel-Caunt
没关系,无论如何都是个好答案。我实际上只是在看你链接文件的底部,它确实写着“根据固定证书的公钥验证主机证书。” - Bruno
如果您需要在更新证书时更改密钥怎么办? - andrew
2
如果您更改密钥,则证书将无法匹配任何固定模式,您将需要让用户更新应用程序。 - David Snabel-Caunt
显示剩余2条评论

0

针对问题的第二部分,是的,使用旧版本的用户将被锁定。

为了降低影响,常见的策略是在即将过期的证书旁边包含新证书。这为用户提供了几个“缓冲”版本,使他们在变更后仍然可以访问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接