0

因此,似乎 ASIHTTPRequest 允许您忽略 https:// 端点上的证书。我目前正在使用 MKNetworkKit 并且已经实现了我所有的调用。不幸的是,我们的测试服务器在 https 上,但没有 SSL 证书。

我可以使用带有 -k 命令的 curl 进行正常连接。我在 MKNetworkKit 中尝试了各种方法来忽略 NSURLAuthenticationChallenge,但无济于事。我尝试的最新方法如​​下:

op.authHandler = ^(NSURLAuthenticationChallenge *challenge)
{
    NSURLCredential *credential = [NSURLCredential credentialWithUser:_userName password:password persistence:NSURLCredentialPersistenceNone];
    [challenge.sender useCredential:credential forAuthenticationChallenge:challenge];
};

这让我实际上得到了一个 401 错误返回(而不是空白)。查看 curl 字符串,MKNetworkKit 会在上述块命中时删除我的用户名/密码。我不确定这是否是进步。

任何人都知道如何简单地忽略 SSL 证书?

编辑:

我必须更新 MKNetwork 套件才能启用新方法ShouldContinueWithInvalidCertificateMKNetworkOperation并且我的测试服务器修复了 certError。

但是,现在我发生了一个奇怪的错误。我仍然无法从服务器上的两个特定端点获得任何回报。我查看请求,将其作为 curl 复制到命令中,然后立即返回结果。我也没有从操作中得到错误。

这里发生了什么事?

4

1 回答 1

4

该类MKNetworkOperation有一个名为的属性shouldContinueWithInvalidCertificate,默认为 NO。您所要做的就是将其设置为“是”,它将忽略证书。

评论:

/*!
 *  @abstract Boolean variable that states whether the operation should continue if the certificate is invalid.
 *  @property shouldContinueWithInvalidCertificate
 *
 *  @discussion
 *  If you set this property to YES, the operation will continue as if the certificate was valid (if you use Server Trust Auth)
 *  The default value is NO. MKNetworkKit will not run an operation with a server that is not trusted.
 */
于 2013-03-04T23:44:32.967 回答