好吧,也许不是所有4事情,但这是我的情况:

我有一个说backend(上运行的桌面Mac)。这是一个股票Apache说服我有,我基本上使用作为一个服务器回到尾的记录和调试我的客户。客户是iPhone项目有一个黑客攻击了跺脚。框架执行使用AsyncSocket.

我需要使用AsyncSocket可可库谈到践踏服务器,这是我或多或少有工作。我可以发送信息到队列,并宣读他们回来了,所以我觉得我好在那里。

但是,当我试图设置的一切使用SSL(还要求)我到下面的错误的描述出来的最新动态对象的,我得到后面:

kCFStreamErrorDomainSSL error -9812.

我不能为了我的生活找出这个错误代码。任何人都有一个线索?

这里是我设置的SSL东西AsyncSocket:

编辑:加入正确的代码这里。注意到自签证书.

//- (BOOL)onSocketWillConnect:(AsyncSocket *)sock
{
// Connecting to a secure server
NSMutableDictionary * settings = [NSMutableDictionary dictionaryWithCapacity:2];

// Use the highest possible security
[settings setObject:(NSString *)kCFStreamSocketSecurityLevelNegotiatedSSL
             forKey:(NSString *)kCFStreamSSLLevel];

// Allow self-signed certificates
[settings setObject:[NSNumber numberWithBool:YES]
             forKey:(NSString *)kCFStreamSSLAllowsAnyRoot];

CFReadStreamSetProperty([sock getCFReadStream],
                        kCFStreamPropertySSLSettings, (CFDictionaryRef)settings);
CFWriteStreamSetProperty([sock getCFWriteStream],
                         kCFStreamPropertySSLSettings, (CFDictionaryRef)settings);

return YES;

}

任何人有任何想法?我 想想 我设置的流性质的正确。也许这是什么做的今后安装?我没有做任何构成其他比使SSL过跺议定书》在今后.我没有证书或任何类似的。也许这就是问题吗?

任何见解表示赞赏!

有帮助吗?

解决方案

不知道具体的错误代码但我可以告诉你的证书,船舶来说是诺迪,旨在用于测试只。他们是自签证书(基本上无效),这可以扔掉一个客户的侧ssl图书馆尝试,以验证他们的链的长度。在 ssl经纪人测试 该证书是明确加信任储存使得客户可以接受它,而不是试图进行验证。一个良好的开端将产生有效证书的经纪人或想出办法增加现有的证书为该信托存储使用过AsyncSocket(不知道如何配置,虽然,可能的联java测试码将帮助)

其他提示

安全运输的参考你的Mac

滚下的结果代码看到的错误代码。一个你得到的是"errSSLUnknownRootCert".(似乎证实gtully的回答。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top