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

主机支持TLS 1.2,网络握手失败

隗瑞
2023-03-14

我正在尝试向支持TLS 1.2的服务器发帖——至少当我在浏览器中执行GET时,我可以验证通信是否使用TLS 1.2,以及证书是否由证书颁发机构验证。然而,当我试图使用AFIOS 9.0(13A4305g)/Xcode 7-beta4将代码发布到该服务器时,我的握手失败了。

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializerWithContentType:@"application/x-www-form-urlencoded"];    
manager.responseSerializer = [AFJSONResponseSerializer serializer];    
[manager POST:requestString parameters:@{ @"apiKey" : MY_API_KEY,
                                          @"payload" : [MyParams paramsForPOSTAsJSON] }
  success:^(AFHTTPRequestOperation *operation, NSDictionary *responseDict) {
      ...
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
      myLog(@"Communication failed: %@", error);
}];

失败:

2015-08-06 15:01:08.398 MyApp[1795:394055] CFNetwork SSLHandshake failed (-9824)
2015-08-06 15:01:08.409 MyApp[1795:394055] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824)
2015-08-06 15:01:08.412 MyApp[1795:393999] MyClass sendDataToServer Communication failed: Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." ...

我错过什么了吗?我怎样才能挖得更深?假设这是服务器的问题,而不是代码的问题——我怎么能窥探到呢?

共有1个答案

陈修诚
2023-03-14

斯特芬引导我找到了答案,我确实需要合适的密码。查看端口上支持的密码的一个简单方法是密码扫描工具。应用程序传输安全支持的密码可以在这里找到。一旦我能够在一个完全配置的网站上测试,我就不需要任何白名单了。对于没有密码的TLS网站,我可以将NS30dPartyException必需的ForwardSecrecy设置为false。

更新

如果您使用OS X El Capitan的beta 3或更高版本,可以使用以下命令:

nscurl --verbose --ats-diagnostics <host>

这将告诉您为了使连接成功,您需要添加哪些条目到白名单中。这对于揭开CFNetwork SSLHandshaff(-9801)类型的SSL失败的神秘面纱非常有帮助。

 类似资料:
  • 我正在尝试使用appium(ver.1.5.3)在mac上自动运行android应用程序。我得到以下提到的错误。请帮帮忙。

  • 我正在使用lemmingzshadow(web)的PHP Websocket服务器。直到现在一切都很顺利。 更新到chrome 20后,如果我想与服务器握手,它以以下错误结束 来自chrome 20的标题 返回的标题: 我认为问题在于Chrome20的“Sec WebSocket Extensions:x-webkit-deflate-frame”标题。 你知道如何让它重新工作吗?

  • 更多面试题总结请看:【面试题】技术面试题汇总 TCP 标志位 TPC 标志位代表了当前请求的目的。一共有六种: SYN(synchronous): 发送/同步标志,用来建立连接,和 ACK 标志位搭配使用。A 请求与 B 建立连接时,SYN=1,ACK=0;B 确认与 A 建立连接时,SYN=1,ACK=1 ACK(acknowledgement):确认标志,表示确认收到请求 PSH(push)

  • DHE-RSA-AES128-GCM-SHA256; ECDHE-RSA-AES128-GCM-SHA256;-->这管用 DHE-RSA-AES256-GCM-SHA384; 是我的配置有问题还是密码不受支持。

  • Networking support 网络支持 Networking options CONFIG_NET 网络选项.systemd依赖于它 Packet socket CONFIG_PACKET 链路层PF_PACKET套接字支持.可以让应用程序(比如:抓包工具tcpdump,DHCP客户端dhclient,WiFi设置工具wpa_supplicant)直接与网络设备通讯,而无需使用内核中的其它

  • 本文向大家介绍Docker主机网络与网桥网络,包括了Docker主机网络与网桥网络的使用技巧和注意事项,需要的朋友参考一下 可用于Docker网络的单主机网络有两种类型:“主机”和“桥”网络。单主机网络意味着它们的影响对于每个单独的主机都是局部的。 在主机网络的情况下,特定的Docker容器可以直接使用主机的网络来发送和接收数据包。对于网桥网络,它需要端口映射才能进行通信。 为了更好地理解它们,让