Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 11模拟器与专用CA的问题_Ios_Ssl_Ssl Certificate_Ios11_Xcode9 - Fatal编程技术网

iOS 11模拟器与专用CA的问题

iOS 11模拟器与专用CA的问题,ios,ssl,ssl-certificate,ios11,xcode9,Ios,Ssl,Ssl Certificate,Ios11,Xcode9,我正在运行Tomcat服务器来开发和测试本机iOS应用程序。服务器提供了一个使用私有CA签名的证书。这是苹果公司对测试服务器的建议,而不是使用自签名证书。我已经在sslshopper.com上测试了该证书,它显示该证书具有CA链。根CA证书已安装在模拟器上 最初,在没有任何ATS例外的情况下,我的应用程序为我提供以下信息: 错误通常是: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

我正在运行Tomcat服务器来开发和测试本机iOS应用程序。服务器提供了一个使用私有CA签名的证书。这是苹果公司对测试服务器的建议,而不是使用自签名证书。我已经在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中访问了我的测试站点,并在确认证书异常后能够访问它。根证书配置文件表示已验证(绿色复选标记)


非常感谢您的帮助。

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


另外,不同的浏览器和操作系统有不同的过程。例如,Chrome获取操作系统的信任存储(EV证书除外),如Chrome上所示。

这最终成为iOS证书管理器中的一个bug。根证书没有CN,这是可选的。根目录中的CN不用于验证函数的任何部分。缺少CN使证书管理器感到困惑,并且证书管理面板中没有显示CN。一位苹果开发者SME提交了一份bug报告。

感谢您的评论@rodriquesf53。正如我提到的,这是一个本机iOS应用程序。没有涉及浏览器。@SteveB,请参阅,应用程序也绑定到服务器上托管的URL,因此您需要确保服务器上安装的证书与URL匹配。我在“我已验证证书中的CN是否正确”中对此进行了说明DNS名称和CN相同。您能否确认已安装根证书?根证书是自签名证书certificate@rodriquesf53,请参阅下面的解决方案。