willSendRequestForAuthenticationChallenge不叫

问题描述:

我想在iOS应用程序中验证服务器证书。willSendRequestForAuthenticationChallenge不叫

我有一个问题的委托方法是:当我使用的服务器,如“https://twitter.com

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge 

该方法被调用。

但是,当我将它指向我的生产服务器(*CA)时,此方法根本不会被调用。

我认为这个证书可以被认为是自签名证书,因为如果您没有安装gov证书,您会在浏览器中看到“此连接不可信”消息。

有什么办法强制willSendRequestForAuthenticationChallenge被调用并检查自签名证书吗?

谢谢!

+0

您是否对此问题有任何解决方法?我面对同样的情况,即使在10分钟后,这个代表也没有被打电话。 – Maverick 2016-03-07 05:29:51

前一个问题已经被问到,但我想我会给人们一个答案。

据我所知,每10分钟每台主机只需调用一次验证质询。挑战的结果是获得性能缓存。缓存在10分钟后过期。 (http://en.wikipedia.org/wiki/Transport_Layer_Security#Resumed_TLS_handshake

好理解,可通过jblack谁具有参考苹果论坛这里给出:How to cancel a persistent connection using NSURLConnection?

当我也有类似的问题,一个问题,绊倒我的是我用的东西同样的主机在应用程序中的多个操作,所以这个挑战已被其他地方接受,但在我的NSURLConnection被解雇之前没有过期,因此我从未得到过挑战(没有必要)。

尝试确定主机这一要求,那么你应该得到的回调。

希望它有帮助。