我知道我们可以在给定SecTrustRef的情况下使用SecTrustSetAnchorCertificates()。但是使用CFStreams,我们只能在握手之后才能获得信任对象。一种解决方法似乎是使用kCFStreamSSLValidatesCertificateChain属性禁用CFStream上的证书链验证,然后使用kCFStreamPropertySSLPeerCertificates获取对等证书,从这些证书创建信任,并自行评估信任。
但是,如果我们可以告诉CFStream使用证书数组作为锚,就会干净得多。我是不是期望太多了?
发布于 2012-04-04 06:19:10
来自苹果开发论坛的eskimo1是这样回答的:
首先,使用kCFStreamSSLValidatesCertificateChain禁用自动信任评估。
其次,一旦流启动并运行(我通常在我的“可接受字节”或“可用字节数”消息处理中执行此操作),使用kCFStreamPropertySSLPeerTrust从流中获取SecTrust对象,并为自己评估该信任。如果信任评估失败,则拆卸该流。
https://stackoverflow.com/questions/4668878
复制相似问题