1

我知道我们可以在给定 SecTrustRef 的情况下使用 SecTrustSetAnchorCertificates()。但是使用CFStreams,我们只有在握手之后才能得到信任对象。一种解决方法似乎是使用 kCFStreamSSLValidatesCertificateChain 属性禁用 CFStream 上的证书链验证,然后使用 kCFStreamPropertySSLPeerCertificates 获取对等证书,从这些证书创建信任并自行评估信任。

但是,如果我们可以告诉 CFStream 使用一系列证书作为锚点,那将会更加简洁。我希望太多了吗?

4

1 回答 1

1

Apple Devforums 的 eskimo1 回答了这个问题:

首先,使用 kCFStreamSSLValidatesCertificateChain 禁用自动信任评估。

其次,一旦流启动并运行(我通常在我的“可以接受字节”或“有可用字节”消息处理中执行此操作),使用 kCFStreamPropertySSLPeerTrust 从流中获取 SecTrust 对象并自己评估该信任。如果信任评估失败,则关闭流。

于 2012-04-03T22:19:10.230 回答