Iphone 在应用程序密钥链中存储证书链

Iphone 在应用程序密钥链中存储证书链,iphone,ios,ssl-certificate,keychain,truststore,Iphone,Ios,Ssl Certificate,Keychain,Truststore,在iOS上,我知道我们可以使用SecTrustEvaluate()评估信任。要创建信任,我们要么从*.p12文件导入它,要么使用证书数组和一组策略创建它 我还知道,为了确保默认情况下不受信任的服务器是受信任的,我们可以使用SecTrustSetAnchorCertificates()来增加用于验证服务器证书的根CA的列表SecTrustEvaluate() 现在,我如何确保这些锚证书在后续发布中可用?我可以在应用程序密钥链中存储证书、密钥和身份,但不能存储证书链。即使我将所有证书存储在链中,我如

在iOS上,我知道我们可以使用SecTrustEvaluate()评估信任。要创建信任,我们要么从*.p12文件导入它,要么使用证书数组和一组策略创建它

我还知道,为了确保默认情况下不受信任的服务器是受信任的,我们可以使用SecTrustSetAnchorCertificates()来增加用于验证服务器证书的根CA的列表SecTrustEvaluate()

现在,我如何确保这些锚证书在后续发布中可用?我可以在应用程序密钥链中存储证书、密钥和身份,但不能存储证书链。即使我将所有证书存储在链中,我如何知道哪些证书将用作锚证书


想到的一个解决方案是从密钥链获取所有证书,并将它们设置为锚证书。另一种方法是将磁盘上的所有证书链作为*.p12文件加载,并在每次应用程序运行时加载一次。

Apple Devforums的爱斯基摩1回答如下:

首先,您不需要将证书存储在密钥链中。如果愿意,可以将它们存储在其他位置(并使用SecCertificateCreateWithData创建SecCertificateRef)

第二,你的问题涉及到.p12文件,但我不确定这和什么有关系。通常,您只使用.p12文件来分发机密信息,并且证书不是机密的

最后,您可以通过存储对该链中每个证书的持久引用(或存储每个证书的实际数据)来存储证书链