我按照此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应用中显示不受信任的证书信息所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)