gpt4 book ai didi

ios - 如何检查 iOS 中 SSL 证书的安全性?

转载 作者:可可西里 更新时间:2023-11-01 03:44:30 24 4
gpt4 key购买 nike

我想检查 SSL 证书是否出现在 URL 中,还想检查它的版本和验证类型。

我创建了一个应用程序,我在其中调用 NSURLConnection 委托(delegate)方法通过服务器发送请求。

还使用了"canAuthenticateAgainstProtectionSpace" 方法,但是一旦建立连接就不会调用此方法。

我如何实现这一目标?

最佳答案

iOS 不会让您非常精细地访问证书信息。您有两个选择:私有(private) API 或使用 OpenSSL 构建您自己的评估器。

可以在opensource code中看到私有(private)证书函数.该版本可从 SecCertificateVersion() 获得。我不确定您在这里所说的“验证类型”是什么意思。

要使用 OpenSSL 执行此操作,您可以使用 SecCertificateCopyData() 获取 DER 数据,然后自行解析所有内容。

我建议打开一个关于这个问题的雷达 (bugreporter.apple.com)。无法访问有关证书的基本信息是一个严重的问题。

如果您正在寻找从 NSURLConnection 中提取证书的示例代码,请参阅 Chapter 11 sample code来自 iOS:PTL :

- (void)connection:(NSURLConnection *)connection
willSendRequestForAuthenticationChallenge:
(NSURLAuthenticationChallenge *)challenge
{
NSURLProtectionSpace *protSpace = challenge.protectionSpace;
SecTrustRef trust = protSpace.serverTrust;
...
SecCertificateRef cert = SecTrustGetCertificateAtIndex(trust, 0);
...

此时,cert 持有您的叶子证书。

关于ios - 如何检查 iOS 中 SSL 证书的安全性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9412643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com