HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cocoa-touch – 在iOS应用中显示不受信任的证书信息大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的iOS应用程序中,我正在尝试连接到具有不受信任证书的服务器.

我按照此url中指定的过程处理此情况:

https://developer.apple.com/library/mac/documentation/cocoa/conceptual/urlloadingsystem/Articles/AuthenticationChallenges.html

这工作正常.

现在我有一个要求,我需要在其中显示与证书相关的详细信息,例如:

>姓名
>位置
>组织单位
>电子邮件地址
>在日期之前无效
>日期后无效
>签名算法

现在我有几个问题:

Q1.我如何获得以上入伍信息?是否有任何cocoa API提供相同的?

Q2.通常在Web浏览器中,它显示与该证书相关的所有详细信息.我们是否需要在iOS应用中遵循相同的行为?

请建议.

解决方法

Q1: https://stackoverflow.com/a/8903088/2957168应该完全回答你的问题.如果您需要其他解释,请发表评论.

Q2:这是您的决定 – 如果您的服务器运行自己的证书并且您希望以这种方式保留(如企业应用程序那样),只需验证证书SHA1或MD5是您期望的(这就是我们在应用).

这意味着你需要一个实现NSURLConnectionDelegate或NSURLConnectionDataDelegate的类(如果你想要数据的处理程序)

然后实现这个方法

- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace
{
    NSLOG(@"connection canAuthaenticateAgainstProtectionSpace");
    if (![Certificates verifyProtectionSpace:protectionSpace]) { //this to verify your own certificate which is self signed.
        NSLOG(@"Bad Certificate,canceling request");
        [connection cancel];
        self.ended = true;
        return false;
    }
    return true;
}

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChALLENge:(NSURLAuthenticationChALLENge *)chALLENge
{
    NSLOG(@"connection didReceiveAuthenticationChALLENge");
    if ([Certificates verifyProtectionSpace:chALLENge.protectionSpace]) { //this is where you verify the certificates again - for non self-signed ones usually.
        [chALLENge.sender useCredential:[NSURLCredential credentialForTrust:chALLENge.protectionSpace.serverTrust] forAuthenticationChALLENge:chALLENge];
    } else {
        [chALLENge.sender performDefaultHandlingForAuthenticationChALLENge:chALLENge];
    }
}

大佬总结

以上是大佬教程为你收集整理的cocoa-touch – 在iOS应用中显示不受信任的证书信息全部内容,希望文章能够帮你解决cocoa-touch – 在iOS应用中显示不受信任的证书信息所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。