【发布时间】:2012-08-16 01:49:20
【问题描述】:
在向 iOS 应用程序添加客户端证书时,我遇到了证书的可恢复信任失败。 iOS docs discussion for SecTrustEvaluate 特别建议使用SecTrustGetTrustResult() 来获取失败的细节,但链接器在引用它时失败。 (它不在任何与 iOS 相关的头文件中,也没有针对该功能的特定 iOS 文档,仅在 SecTrustGetTrustResult 中提及。另一个回复 recent stackoverflow question 表示它在 iOS 上不可用,但没有任何支持详细信息。)假设它实际上不可用,那么在我的 iOS 代码中获取有关可恢复故障的具体详细信息的正确方法是什么?
(那个 iOS 手册也提到了 SecTrustGetCssmResult 用于相同的目的。我还没有尝试过,但在 iOS 5.1 头文件中也没有以任何方式提及,也没有任何 iOS 文档条目专门用于该函数。此外,Mac OS X 文档确实有详细信息,将其标记为 - 以及相关的SecTrustGetCssmResultCode - 已弃用。)
最后说明:由于我们同时运行服务器和客户端,因此我们使用的是私人制作的证书,我相信我们可以随意重新生成证书。我没有生成我目前使用的那个,所以不确定它的血统书。如果相关,我正在尝试使用 Xcode 4.3.3 与 iPhone 5.1 或 iPad 5.1 模拟器目标进行编译。
感谢任何线索!
【问题讨论】:
-
SecTrustGetCssmResult 和 SecTrustGetCssmResultCode 在 iOS 上似乎也不可用。 (我没有提到我的代码导入了 Security/Security.h。)
-
我了解到我正在集成的证书正在其他客户端中使用,因此我们无法更换新证书。至少我知道它有效。
-
在Certificate, Key, and Trust Services Reference doc 中声明
SecTrustGetTrustResult仅适用于Mac OS X 而不适用于iOS。
标签: ios client certificate x509 trust