Tag: 信任

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

我知道我们可以使用SecTrustSetAnchorCertificates()给出一个SecTrustRef。 但是用CFStreams,我们只能在握手后才能得到信任对象。 一种解决方法似乎是使用kCFStreamSSLValidatesCertificateChain属性禁用CFStream上的证书链validation,然后使用kCFStreamPropertySSLPeerCertificates获取对等证书,从这些证书创build信任并自行评估信任。 但是,如果我们可以告诉CFStream使用一系列证书作为锚点,那将会更加清洁。 我是否希望太多?

几个用户获得NSURLErrorServerCertificateUntrusted

我在这个企业应用上有几百个用户。 我有2抛出一个NSURLErrorServerCertificateUntrusted不会和服务器通话。 我已经检查了服务器和证书是有效的,但这并没有让我感到意外,因为这个问题只影响这2个用户。 我已经让他们检查他们的iPad上的date/时间,他们是正确和自动设置。 我已经让他们连接尝试通过单元networking和本地WiFi热点。 这两名用户似乎不太可能成为中间人攻击的目标。 这个问题从来没有得到答案, Trust上的苹果TN2232文件提供了一些常见的问题,但还没有得到我的解决scheme,因为这些东西大多会影响所有的用户,而不仅仅是一对夫妇。 缺less发行人证书 – 对于任何给定的证书(可信锚点除外),系统必须能够find发行人的证书。 date问题 – 对于任何给定的证书,validationdate必须在证书的有效date范围内。 自签名证书 – 对于任何给定的证书,如果证书是自签名的,将导致评估失败(除非它是可信的锚)。 没有可信锚点 – 系统必须能够遵循颁发者证书通往可信锚点的path。 DNS名称不匹配 – 您尝试连接的DNS名称必须与服务器证书中的名称相匹配,如前一部分所述。 任何想法是什么导致这个以及如何解决它? 是的,我可以绕过安全并相信我的域名,但这不是我愿意接受的选项。

SecTrustEvaluate()是否在应用程序密钥链中查找根证书?

该文档说:“如果不是所有需要validation叶证书的证书都包含在信任pipe理对象中,那么SecTrustEvaluate会在钥匙串search列表(请参见SecTrustSetKeychains)和系统的锚证书存储区中search证书(请参阅SecTrustSetAnchorCertificates) “。 但是,由于SecTrustSetKeychains()在iOS上不可用,因此不清楚这个函数是否也会在应用程序的钥匙串中查找。