我希望能够获得 ssl 证书(如果可能的话+链),以便能够显示可分辨名称并确定它是否是 EV 证书。 (通过证书策略检测 EV 证书(维基百科 http://en.wikipedia.org/wiki/Extended_Validation_Certificate#Extended_Validation_certificate_identification)
据我所知,如果证书是自签名的,您只会看到一些证书详细信息。
是否可以使用 CFNetwork 等较低层来检索证书?
via the macnetworkprog.lists.apple.com邮件列表http://web.archiveorange.com/archive/v/x0fiWEI9emJFc36DY0UP http://web.archiveorange.com/archive/v/x0fiWEI9emJFc36DY0UP并提到了开发者论坛中的几个地方
好吧,默认的 TLS 安全策略应该足够了,但是如果
你想参与这个过程你可以这样做(在 iPhone OS 上)
3.0 及更高版本,以及 Mac OS X 10.6),通过实现-connection:canAuthenticateAgainstProtectionSpace:
and
-connection:didReceiveAuthenticationChallenge:
委托回调,
寻找一个NSURLAuthenticationMethodServerTrust
验证
方法。
去做这个:
实施-connection:canAuthenticateAgainstProtectionSpace:
委托回调。
-
在您的实现中,如果身份验证方法
保护空间为NSURLAuthenticationMethodServerTrust
, 你有
两个选择:
2a.返回NO
,并让默认的 TLS 算法生效。
2b.返回YES
,在这种情况下你的-connection:didReceiveAuthenticationChallenge:
将调用委托回调。
如果您想在制作之前查看证书
决定,您可以致电-serverTrust
在保护空间物体上
获取信任对象,然后使用SecTrust API得到
证书链。
-
如果您选择路径 2b,您的-connection:didReceiveAuthenticationChallenge:
将调用委托回调。你有两个选择:
3a.通过调用来禁止连接-cancelAuthenticationChallenge:
关于挑战的发件人。
3b.通过调用允许连接-useCredential:forAuthenticationChallenge:
关于挑战的发件人。要获取凭证,请致电-[NSURLCredential initWithTrust:]
。实际上,您在这里传递什么信任对象并不重要;保护空间里的就可以了。
您不必同步执行此操作。你可以只锁住
挑战并从您的委托回调中返回,然后解决
在未来的某个时刻挑战。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)