当前位置: 首页 > 知识库问答 >
问题:

SSL握手失败9801-TCP连接-Xcode 7

祁正阳
2023-03-14

在这个基于Xcode7(beta)构建的应用程序中,TCP套接字连接(NSStream)失败,错误如下。

**CFNetwork SSLHandshake failed (-9801)

Stream Error -9801: The operation couldn’t be completed. (OSStatus error -9801.)**   

在info.plist中,我还包括了以下相关异常的ATS。

<key>NSAppTransportSecurity</key>
  <dict>
  <key>NSAllowsArbitraryLoads</key>
    <true/>
          <key>XXdomain</key>

          <dict>
                  <key>NSExceptionAllowsInsecureHTTPLoads</key>
                  <true/>
                  <key>NSExceptionRequiresForwardSecrecy</key>
                  <false/>
          </dict>
  </dict>

但在下面的委托中

-(void)stream:(NSStream*)stream HandleEvent:(NSStreamEvent)eventCode

我得到的事件代码为8,表示错误发生。具有上述描述。

验证错误:num=19:证书链中的自签名证书

验证返回:0

证书链

----开始证书

MIIFGTCCBAGGAWIBAGIQBFM51MUYQJTW9JEXLV1Z6ZANBGKQHKIG9W0BAQSFADB+....VxDDEAPZWHP/CTALAQ==

-----结束证书

2 S:/c=us/o=VeriSign,Inc./ou=VeriSign信任网络/ou=(c)2006 VeriSign,Inc.-仅供授权使用/cn=VeriSign 3类公共主证书颁发机构-G5 I:/c=us/o=VeriSign,Inc./ou=3类公共主证书颁发机构----开始证书---MIIE0DCCBDMGAIBAGIQJQZO4DBHLP8RIFCFTXZ4/TANBGKQHKG9W0BAQUFFADBF...TOXFNFEKW/9MZ1CVXM1XJRL4T7MI0VFQH5PLR7RJJHJ+XR3/---结束证书-------3 s:/c=us/o=VeriSign,inc./ou=Class 3公共主证书颁发机构i:/c=us/o=VeriSign,inc./ou=Class 3公共主证书颁发机构---开始证书

MIICPDCCAAUCEDYRMCSF9TABDPQ40ES/ER4WDQYJKOZIHVCNAQEFBQAWXZELMAKG...2HUW19JLYD1N1KHVDWK/KFVIC0DPIMMCLR7JYDIGSNOSCXLIAU5RFGW/D/XWZOIQ

--结束证书

服务器证书

SUBJECT=/C=US/ST=New York/L=New York/O=XXXX/OU=XXXE/CN=XXX

No client certificate CA names sent

SSL handshake has read 4655 bytes and written 434 bytes


New, TLSv1/SSLv3, Cipher is AES256-SHA

Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:

Protocol  : SSLv3

Cipher    : AES256-SHA

Session-ID: A159CA3FAFF5A23E7CE47C2C1DD21C91310A3820F5A5D1EDE38D451613CAE704

Session-ID-ctx:

Master-Key: XXXXX

Key-Arg  : None

Start Time: 1439320578

Timeout  : 7200 (sec)

共有1个答案

罗寒
2023-03-14

在iOS 9.0中,最低限度只支持TLS 1.0和服务器支持的SSL 3.0。所以我得到了上面的错误。

我们可以在os ei Capain中使用以下命令检查ATS兼容性

/usr/bin/nscurl--ATS-诊断[URL]

 类似资料:
  • 我们很难与远程机器(如PayPal vb)建立https连接谁从我们的系统中禁用了SSL3协议。Net应用程序。HttpWebRequest实例的GetResponse方法出现以下异常。 请求被中止:无法创建SSL/TLS安全通道。 当我们使用WireShark深入并跟踪网络日志时,我们看到远程机器返回以下错误 TLSv1。2警报(级别:致命,描述:握手失败)握手失败40 更有趣的情况是,当我尝试

  • 我正在学习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路身份验证。客户还必须将我的公共证书导入其密钥库。

  • iOS 9 beta 1版有人遇到过这个问题吗? 我使用标准的NSURLConnection连接到一个Web服务,一旦调用该Web服务,我就会得到以下错误。这项功能目前在iOS 8.3中运行 可能是beta bug?任何想法都会很棒!我知道这是iOS 9开发的早期阶段 以下是完整的错误: CFNetwork SSL握手失败(-9824)NSURL会话/NSURLConnection HTTP加载失