我们如何告诉CFStream使用一组锚证书?
题
我知道我们可以使用sectrustref的sectrustSetNanchorCertificates()。但是,使用CFStreams,我们只有在手握手之后才能获得信任对象。一个解决方法似乎是使用KCFSTREAMSSLVALIDATESCERTIFICATECHAIN属性在CFStream上禁用证书链验证,然后使用KCFStreamPropertysslpeercerationates获得对等证书,从这些证书中创建信任,并自行评估信任。
但是,如果我们只能告诉CFSTREAM将一系列证书作为锚点,那就更加干净了。我希望太多吗?
解决方案
Apple Devforums的Eskimo1回答了这一点:
首先,使用KCFSTREAMSSLVALIDATESCERTIFICATECHAIN禁用自动信任评估。
其次,一旦流启动并运行了(我通常会在“可以接受字节”或“有可用的字节”消息处理中执行此操作),请使用kcfstreamproperpertysslpeertrust从流中获取sectrust对象,并对自己评估该信任。如果信任评估失败,请拆除流。
不隶属于 StackOverflow