我知道我们可以使用sectrustref的sectrustSetNanchorCertificates()。但是,使用CFStreams,我们只有在手握手之后才能获得信任对象。一个解决方法似乎是使用KCFSTREAMSSLVALIDATESCERTIFICATECHAIN属性在CFStream上禁用证书链验证,然后使用KCFStreamPropertysslpeercerationates获得对等证书,从这些证书中创建信任,并自行评估信任。

但是,如果我们只能告诉CFSTREAM将一系列证书作为锚点,那就更加干净了。我希望太多吗?

有帮助吗?

解决方案

Apple Devforums的Eskimo1回答了这一点:

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top