我的服务器上有一个由 CA (Geotrust) 签名的证书。我的应用程序中安装了相同的证书。我比较了 URLSession:didReceiveChallenge:completionHandler: 中的两个证书。但是我的托管服务通知我,我需要每年“更新”证书。这为我在应用程序中处理创建了一个新的和不同的证书。由于证书不是自签名的,我是否需要将证书嵌入应用程序以与来自服务器的证书进行比较,或者 iOS 的 SSL 处理是否为我解决了挑战。也许我可以只使用服务器信任而不查看证书?
最佳答案
I have the same cert installed in my app.
为什么?
I compare the two certs in URLSession:didReceiveChallenge:completionHandler.
为什么?
您应该做的是比较 subjectDN。这就是签名者正在验证的内容。这就是您所需要的。
Maybe I can just use server trust without looking at the cert?
听起来您正在尝试做正确的事情并添加授权步骤。依靠“服务器信任”只会为您提供身份验证,即主题 DN 就是他所说的那个人。授权检查该 DN 是否被授权使用应用程序的这一部分。但是您不需要为此检查整个证书。
关于ios - 在服务器上更新 SSL 证书时处理它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23876251/