如果在iOS应用程序中使用了SSL Pinning,那么如何更新过期的SSL证书呢?似乎只有应用程序更新才能使证书得到更新,但是没有更新应用程序的用户将无法接收此更新。
关键在于理解AFSecurityPolicy
的pinningMode
的可能值。
AFSSLPinningModeCertificate
意味着服务器提供的证书必须完全匹配其中一个固定证书,这些证书默认在您的应用程序包中。这是您当前正在使用的模式。
AFSSLPinningModePublicKey
表示服务器提供的证书必须包含与您的应用程序固定证书之一相同的公钥。
如果使用AFSSLPinningModePublicKey
并使用相同密钥对更新服务器证书,则您的iOS应用程序将在无需修改的情况下继续工作。
针对问题的第二部分,是的,使用旧版本的用户将被锁定。
为了降低影响,常见的策略是在即将过期的证书旁边包含新证书。这为用户提供了几个“缓冲”版本,使他们在变更后仍然可以访问。
AFSSLPinningModePublicKey
的意思是服务器必须由相同的密钥签名,而不是证书包含与参考密钥相同的公钥(这通常更有意义)吗? - Bruno