我们如何告诉CFStream使用一组锚证书?

时间:2011-01-12 12:38:01

标签: iphone ios ssl stream trust

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

但如果我们能告诉CFStream使用一系列证书作为锚点,那将会更加清晰。我希望得到太多吗?

1 个答案:

答案 0 :(得分:1)

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

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

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