我的Mac Os X应用程序需要访问巴西的其他服务器,其中一台服务器似乎有sslv3问题。似乎通过MS Windows解决方案访问是正常的。我尝试使用Internet Explorer,它的工作原理。这是Firefox向我展示的一个例子:
我在http://www.idanfe.com/trustAuthenticationTester.zip编写了一个示例应用程序来演示该方法 - (void)连接:(NSURLConnection *)aConnection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)aChallenge在与服务器通信时根本没有被调用{{3但是我可以使用服务器https://nfe.sefaz.ce.gov.br/nfe2/services/NfeStatusServico2。目的是自定义服务器信任评估。但此时不可能。
这是我得到的错误:
CFNetwork SSLHandshake失败(-9824)
CFNetwork SSLHandshake失败(-9802)
CFNetwork SSLHandshake失败(-9802)
NSURLConnection / CFURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9802)
感谢。
答案 0 :(得分:0)
最新版本的OS X在主机服务器中需要TLSv1.2 SSL,因此SSL失败。您可以在info.plist文件中设置例外。
LoadLibrary
不推荐使用NSURLConnection,你应该转而使用NSURLSession,因为在info.plist和NSURLConnection中存在处理异常的错误。
如果您想获得有关错误的更多信息,可以将架构设置下的 CFNETWORK_DIAGNOSTICS 环境变量设置为 1 ,日志将生成更精确的结果在SSL握手期间发生了什么。