kCFStreamErrorDomainSSL,-9802在iOS 9中通过HTTPS通过IP地址连接到服务器时

Rya*_*ung 23 iphone ios afnetworking ios9 app-transport-security

我们有一个iOS应用程序通过HTTPS连接到我们的服务器.当应用程序使用新的iOS 9 SDK构建并在iOS 9下运行时,会发生以下错误:

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
Run Code Online (Sandbox Code Playgroud)

该应用程序使用带有固定证书的AFNetworking 1.3.4.如果我使用其IP地址连接到服务器,则会出现此问题.如果我添加NSAllowsArbitraryLoads配置,或者如果我使用其域名连接到服务器,它可以工作.

Tomcat连接器配置有sslEnabledProtocols ="TLSv1,TLSv1.1,TLSv1.2".

我试过覆盖主机名但它似乎没有改变任何东西.

我还没有找到关于ATS的官方文件.也许连接IP地址不起作用?

zap*_*aph 29

iOS9要求服务器仅支持TLSv1.2并支持完美的前向安全性.

此外,还需要应用程序支持IPV6,包括不使用硬编码的IP地址.建议是使用NSURLSession.否则,必须在app plist中添加异常.

请参阅WWDC-15会话"安全性和您的应用程序".

有关详细信息,请参阅Steven Peterson的博客.

  • 我的服务器支持TLS 1.2.我添加了一个异常(包括子域)只能绕过前向保密,我仍然得到这个错误(`kCFStreamErrorDomainSSL,-9802`) (4认同)

com*_*tos 5

您可以在" Info.plist "文件中添加它,它将允许非安全连接:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
Run Code Online (Sandbox Code Playgroud)