【发布时间】:2018-03-24 14:13:30
【问题描述】:
我正在运行 Tomcat 服务器来开发和测试原生 iOS 应用程序。服务器正在提供使用私有 CA 签名的证书。这是 Apple 对测试服务器的建议,而不是使用自签名证书。我已经在 sslshopper.com 测试了证书,它表明该证书有一个 CA 链。模拟器上已经安装了根 CA 证书。
最初,在没有任何 ATS 异常的情况下,我的应用程序为我提供了以下内容:
错误是常见的:
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
此错误通常是应用遇到自签名证书时的结果。正如我上面所说,证书不是自签名的。
将异常域添加到应用程序的 plist 后,我得到了:
这通常是我们看到的带有无效 CN 的证书。我已验证证书中的 CN 正确。
错误是:
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
我在 Apple 文档中找不到错误,最后不得不求助于在头文件中查找它。如下:
errSSLNoRootCert = -9813, /* cert chain not verified by root */
由于存在链并且在模拟器上安装了根证书,我不确定这个错误意味着什么。在安装根证书时,我确实注意到它在证书信任设置中启用之前无法使用,但模拟器中该窗格上唯一的实时内容是指向 Apple 开发人员站点的链接。我在 Safari 中访问了我的测试站点,并在确认证书异常后能够访问它。根证书配置文件表明它已通过验证(绿色复选标记)。
感谢任何帮助。
【问题讨论】:
标签: ios ssl ssl-certificate ios11 xcode9