gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 02:43:32 25 4
gpt4 key购买 nike

在基于 Xcode 7(测试版)构建的应用程序中,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>

但是在下面的委托(delegate)中

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

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

通过 openSSL 正确建立连接

openssl s_client -showcerts -connect XXX:ZZZ-ssl3

连接(00000003)

depth=3/C=US/O=XXX, Inc./OU=XXXX

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

验证返回:0

证书链

0 s:/C=US/ST=纽约/L=纽约/O=XXX/OU=XXX/CN=XXX i:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3 Secure Server CA - G4

-----开始证书

MIIFGTCCBAGgAwIBAgIQbfM51mUYqjtW9jExlV1z6zANBgkqhkiG9w0BAQsFADB+....VXDdeaPZWHp/cTAlAQ==

-----证书结束

1 s:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3 Secure Server CA - G4 i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - 仅供授权使用/CN=VeriSign Class 3 Public Primary Certification Authority - G5-----开始证书

MIIFODCCBCCgAwIBAgIQUT+5dDhwtzRAQY0wkwaZ/zANBgkqhkiG9w0BAQsFADCB

...Kvi4Os7X1g8RvmurFPW9QaAiY4nxug9vKWNmLT+sjHLF+8fk1A/yO0+MKcc=

-----证书结束

2 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - 仅供授权使用/CN=VeriSign Class 3 Public Primary Certification Authority - G5 i:/C=US/O=VeriSign, Inc./OU=Class 3 公共(public)主要证书颁发机构-----开始证书-----MIIE0DCCBDmgAwIBAgIQJQzo4DBhLp8rifcFTXz4/TANBgkqhkiG9w0BAQUFADBf...tOxFNfeKW/9mz1Cvxm1XjRl4t7mi0VfqH5pLr7rJjhJ+xr3/-----证书结束-----3 s:/C=US/O=VeriSign, Inc./OU=Class 3 公共(public)主要证书颁发机构 i:/C=US/O=VeriSign, Inc./OU=Class 3 公共(public)主要证书颁发机构-----开始证书

MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG...2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ

--结束证书


服务器证书

subject=/C=US/ST=纽约/L=纽约/O=XXXX/OU=XXXe/CN=XXX

issuer=/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3 Secure Server CA - G4

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)

验证返回码:0(ok)

最佳答案

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

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

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

例子 /usr/bin/nscurl --ats 诊断 https://apple.com

关于ios - SSL 握手失败 9801 - TCP 连接 - Xcode 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31957725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com