2015-11-03 154 views
0

我们有一个使用第三方框架进行身份验证的自定义移动应用程序。该框架将连接到运行在tomcat上的基于Web的服务器。该服务器受TSL 1.2证书保护。如果我没有SSL连接,连接成功。我收到的错误消息如下。Objective-C SSL问题:CFNetwork SSLHandshake失败(-9847)

CFNetwork SSLHandshake failed (-9847) 

我认为这个错误信息意味着它解析到服务器,但无法完成SSL握手。

Info.plist我配置了以下内容。

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>yoursite.here.com</key> 
      <dict> 
       <!--Include to allow subdomains--> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
       <!--Include to allow insecure HTTP requests--> 
       <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
       <!--Include to specify minimum TLS version--> 
       <key>NSTemporaryExceptionMinimumTLSVersion</key> 
       <string>TLSv1.1</string> 
      </dict> 
     </dict> 
    </dict> 

除此之外,我试图通过替换上面的代码片段绕过新的IOS标准的证书。但是结果是一样的

<key>NSAppTransportSecurity</key> 
<dict> 
    <!--Connect to anything (this is probably BAD)--> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

证书是自签名的,并且当用户通过MicroStrategy Web访问并不需要互动。

+0

我也得到了需要“CFNetwork的SSLHandshake失败(-9824)”错误太多。你有没有找到任何解决方案? – Inuyasha

+0

嗨我也得到这个错误。并尝试过这种解决方案,但没有得到任何解决方案,所以你可以给我一些其他方法。 –

回答

1

我使用SSL的端口不正确,使用443