应用传输安全性已禁用,仍然收到SSL握手错误

我在通过HTTPS / SSL连接到API时遇到问题。 我使用下面的字典完全禁用了App Transport Security(ATS)(尽pipeSSL证书通过了NSCURL的所有testing)。

<dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> </plist> 

但是:仍然存在一个SSL握手错误(下面),当谷歌search,只表明这是与应用程序传输安全。

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)

我已经创build了一个最小的示例项目来演示这个问题, 可以在GitHub上find(https://github.com/samheather/AppTransportSecurityDemo) 。 你应该会发现,在运行项目几秒钟内崩溃(直接尝试在viewDidLoad中build立连接)。

我尝试连接到的域名是https://demo.heather.sh ,并且有一个示例URL(具有响应的证书(因此可以查看证书))是https://demo.heather.sh :443 / checkOnline 。

任何想法的人?

谢谢!

山姆

正如iOS应用程序传输安全性所述, 不接受TLSv1.2连接和plistexception没有任何区别 ,问题是服务器没有提供与中间证书相结合的证书。 现在,这是固定的,一切正常:)

正如阿南德(上图)所说,一个很好的工具来检查这是: http : //ssllabs.com/ssltest/analyze.html?d=