iOS 9 beta 1版有人遇到过这个问题吗?
我使用标准的NSURLConnection连接到一个Web服务,一旦调用该Web服务,我就会得到以下错误。这项功能目前在iOS 8.3中运行
可能是beta bug?任何想法都会很棒!我知道这是iOS 9开发的早期阶段
以下是完整的错误:
CFNetwork SSL握手失败(-9824)NSURL会话/NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9824)
NSURLRequest * urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://mywebserviceurl"]];
NSURLResponse * response = nil;
NSError * error = nil;
NSData * data = [NSURLConnection sendSynchronousRequest:urlRequest
returningResponse:&response
error:&error];
有关更多信息,请在iOS 9和OSX 10.11中配置应用程序传输安全例外
奇怪的是,您会注意到连接试图将超文本传输协议更改为https,以防止代码中的错误,在这些错误中,您可能无意中错误配置了网址。在某些情况下,这可能实际上有效,但也令人困惑。
这个运送应用程序与应用程序传输安全涵盖了一些很好的调试技巧
ATS故障
大多数ATS故障将以-9800系列代码中的CFER形式出现。这些在安全/安全传输头中定义
2015-08-23 06:34:42.700 SelfSignedServerATSTest[3792:683731] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
网络诊断
将环境变量CFNETWORK_DIAGNOSTICS设置为1,以便在控制台上获取有关故障的更多信息
nscurl
该工具将运行几个不同的ATS异常组合,在每个ATS配置下尝试与给定主机的安全连接,并报告结果。
nscurl --ats-diagnostics https://example.com
在iOS10中,TLS字符串必须是TLSv1.0的形式。它不能仅仅是1.0。(叹息)
以下是其他答案的组合。
假设您正在尝试连接到一个只有TLS 1.0的主机(YOUR_host.COM)。
将这些添加到应用程序的信息中。普利斯特
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>YOUR_HOST.COM</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSTemporaryExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
iOS 9和OSX 10.11需要TLSv1。2 SSL适用于您计划从中请求数据的所有主机,除非您在应用程序信息中指定了例外域。plist文件。
Info.plist配置的语法如下所示:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourserver.com</key>
<dict>
<!--Include to allow subdomains-->
<key>NSIncludesSubdomains</key>
<true/>
<!--Include to allow insecure HTTP requests-->
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<!--Include to specify minimum TLS version-->
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
如果您的应用程序(例如,第三方web浏览器)需要连接到任意主机,您可以如下配置:
<key>NSAppTransportSecurity</key>
<dict>
<!--Connect to anything (this is probably BAD)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
如果必须这样做,最好更新服务器以使用TLSv1。2和SSL,如果他们还没有这样做。这应该被视为一种临时解决办法。
截至今天,预发布文档没有以任何特定方式提及这些配置选项。一旦完成,我将更新答案,以链接到相关文档。
我正在学习SSL通信,我遇到了这个问题。我正在编写一个简单的客户端,它试图与本地apache服务器握手。服务器启用https。我将服务器证书添加到所有可能的信任存储(jdk中的一个 注意:我从以下教程中获取了代码: http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#KRB 停留
我通过受ssl v3保护的cxf使用soap服务。我从服务器下载.cer文件,并通过keytool使用以下指令创建JKS文件: 在java代码中,我将此代码用于客户端配置: 对于调用此代码的服务: 当我运行代码时,会发生此错误: 我搜索此错误,我意识到该错误是针对不良信任存储的。但我不知道如何生成正确的信任库。
我在使用硒测试时收到此错误 我现在的代码是 是否有其他方法可以忽略/解决此错误?
我正在对我们的数据库服务进行超文本传输协议请求的大循环。一切都很好,但是每当我运行它时,在成功查询(看似随机)数量后,我都会收到以下错误:
问题内容: 我正在尝试将Jenkins CI配置为对我们的项目执行持续集成,并且无法使其通过https连接到我们的SVN存储库。每当我尝试配置存储库URL并尝试连接时,都会遇到以下异常: 我在tomcat实例上启用了SSL调试(使用),并得到了以下信息: 我尝试按照这篇文章中的说明在tomcat中添加属性,但仍然出现相同的错误。 在这一点上,我对发生的事情完全感到困惑。不幸的是,我不是完全了解SS
问题内容: 我已经将证书导入到信任库中,但是仍然无法成功连接到该URL。我已经尝试了所有方法,任何人都可以看到输出并提供帮助吗? 无法弄清楚这是什么,应用程序正在使用java1.6,但是SSLPoke无法通过两种情况 问题答案: 我发现客户也进行了验证。因此它是2路身份验证。客户还必须将我的公共证书导入其密钥库。