我正在研究使用SSL的REST Web服务的应用程序。 Web服务已经到位,使用SSL证书进行识别。即使证书似乎有效,它仍然被iOS拒绝。以下是详细信息:
- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)space
。 RestKit代码中的注释说“服务器正在使用操作系统无法验证的SSL证书”,所以我想我永远不应该达到那种方法,对吗?我可以通过将证书添加到应用程序包并使用与自签名证书相同的方式处理它来连接到Web服务,但我想以正确的方式解决这个问题。任何帮助都非常感激,特别是如果有人可以指出为什么iOS上的Safari接受证书,而我的应用程序没有。
编辑: 事实证明我一直在使用旧的RestKit版本。我创建了概念证明,允许我向我的服务器发送一些请求,并且从今天(2012年5月3日)起使用RestKit主服务器接受证书。但是,我接到 connection:canAuthenticateAgainstProtectionSpace:
的两次调用,在这两次调用中我返回NO,但无论如何它都设法正确连接。所以,新问题是,RestKit中究竟发生了哪些变化,我现在可以正确连接。我需要知道这一点,因为我将不得不修补我将用于发布的旧版本。之后我会更新RestKit。
编辑:我需要将其交还给RestKit的人,这不是他们的错。我正在尝试连接的Web服务正在使用某种类型的网关,这是问题的根源。当天早些时候网关工作人员有一些修复,这就是为什么当我设法用最新的RestKit版本执行测试时它正常工作。