在iOS上,我知道我们可以使用SecTrustEvaluate()评估信任。要创建信任,我们可以从*.p12文件中导入它,或者使用证书数组和一组策略来创建它。
我还知道,为了确保不被默认信任的服务器得到信任,我们可以使用SecTrustSetAnchorCertificates()来增加根CA列表,以便SecTrustEvaluate()用于验证服务器的证书。
现在,我该如何确保这些锚定证书在后续启动时可用?我可以将证书、密钥和身份存储在应用程序钥匙串中,但无法存储证书链。即使我将链中的所有证书都存储起来,我怎么知道哪些证书应作为锚定证书使用?
一个想到的解决方案是从钥匙串中获取所有证书,并将它们设置为锚定证书。另一种方法可能是将磁盘上所有证书链作为*.p12文件加载,并在每次应用程序运行时加载它们。
我还知道,为了确保不被默认信任的服务器得到信任,我们可以使用SecTrustSetAnchorCertificates()来增加根CA列表,以便SecTrustEvaluate()用于验证服务器的证书。
现在,我该如何确保这些锚定证书在后续启动时可用?我可以将证书、密钥和身份存储在应用程序钥匙串中,但无法存储证书链。即使我将链中的所有证书都存储起来,我怎么知道哪些证书应作为锚定证书使用?
一个想到的解决方案是从钥匙串中获取所有证书,并将它们设置为锚定证书。另一种方法可能是将磁盘上所有证书链作为*.p12文件加载,并在每次应用程序运行时加载它们。