首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有私有CA的iOS 11仿真器问题

带有私有CA的iOS 11仿真器问题
EN

Stack Overflow用户
提问于 2017-10-12 15:06:54
回答 2查看 722关注 0票数 0

我正在运行Tomcat服务器来开发和测试一个本地iOS应用程序。服务器正在显示一个用私有CA签名的证书。这是苹果推荐的测试服务器,而不是使用自签名证书。我已经在sslshopper.com上测试了证书,它显示证书有一个CA链。根CA证书已安装在模拟器上。

最初,除了任何ATS例外,我的应用程序给我以下内容:

这个错误通常是:

代码语言:javascript
复制
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

此错误通常是当应用程序遇到自签名证书时的结果。正如我上面所说的,证书不是自签名的.

在将异常域添加到应用程序的plist后,我得到如下信息:

这通常是我们对具有无效CN的证书所看到的。我已经证实证书中的CN是正确的。

错误是:

代码语言:javascript
复制
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)

我在Apple文档中找不到错误,最后不得不在头文件中查找它。其内容如下:

代码语言:javascript
复制
errSSLNoRootCert            = -9813,    /* cert chain not verified by root */

由于链已经存在,并且根证书已经安装在模拟器上,所以我不知道这个错误意味着什么。在安装根证书时,我确实注意到,在证书信任设置中启用它之前,它是不可用的,但是模拟器中该窗格中唯一的活动内容是指向Apple developers站点的链接。我去了Safari的测试站点,在确认证书异常后能够访问它。根证书配置文件表明它已被验证(绿色复选标记)。

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-21 23:28:09

这最终是iOS证书管理器中的一个bug。根证书没有CN,这是可选的。根中的CN不用于验证函数的任何部分。缺少CN使证书管理器混淆了,并且它没有在证书管理面板中显示它。苹果的一位开发者中小企业提交了一份错误报告。

票数 1
EN

Stack Overflow用户

发布于 2017-10-13 11:06:57

如果使用内部CA证书/私有证书,则需要浏览内部网络中的链接。任何从外部网络浏览的人都应该在浏览器上安装根目录和中间证书。

另外,不同的浏览器和操作系统有不同的过程。例如,Chrome采用操作系统的信任存储(除EV证书外),如铬的根CA策略所示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46713020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档