我有iOS 10 TSL问题(“安全错误:-9801”)。 怎么修?

我有连接到SSL SOAP服务的应用程序。 对于iOS 9.3.5的应用程序工作正常。 从iOS 10我有代码-9801错误。 我想这是连接到苹果的ATS。 站点证书configuration为TLS 1.0 (但我无法pipe理证书configuration)。

我怎样才能解决这个问题? 我想我必须添加它作为例外.plist文件。

我也检查了www.ssllabs.com和部分Apple ATS 9 / iOS 9 R它给错误:

协议或密码套件不匹配

但在iOS 9上,它的工作原理。

编辑:

我将域添加到ATSexception(在info.plist ),但错误仍然存​​在

NSAppTransportSecurity NSAllowsArbitraryLoads

在你的info.plist添加这个键 – 值,这意味着它将允许所有types的负载。 如果您有特定的域名,那么您应该在info.plist添加特定的域名。

更新:

如果你需要安全连接,那么你应该pipe理你的info.plist

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

或者你应该使用web服务有ssl集成!

nscurl中使用ATS诊断模式获取ATS字典的build议内容:

nscurl --ats-diagnostics https://yourdomain.com --verbose

我发现暂时的解决办法,但我会继续调查TSL证书configuration。

我将我们服务的URL添加到ATS例外( 这里有更多信息)。 然后,我必须发现在iOS 10中ATSconfiguration发生了变化,exception必须写成TSLv1.0而不是1.0(我使用了其他站点的例外情况,内部是1.0) – 这个答案是10x。