[iOS]如何使用 NSURLConnection 自定义 SSL 验证?

[iOS]How to customize SSL validation with NSURLConnection?

出于某种原因,我需要自定义 iOS 应用程序的 SSL 验证,这样它就不会尝试将 URL 与 SSL 证书的 CN 字段匹配,而是检查 CN 字段是否包含我指定的内容。

我现在使用的是标准 [NSURLConnection sendAsynchronousRequest],我无法使用它来自定义 SSL 验证行为。

可能吗?

这在 Apple 开发人员文档网站的 Overriding TLS Chain Validation Correctly 中有完整的代码清单记录。基本上,您为所需的主机名创建一个新的 TLS 策略对象,然后使用一组证书和更改后的信任策略创建一个新的信任对象。

只需将清单 3(覆盖 NSURLConnection 对象使用的信任对象)与清单 2(更改 SecTrustRef 对象的远程主机名)结合起来。