2011-01-11 151 views
3

在iOS上,我知道我們可以使用SecTrustEvaluate()來評估信任。要創建一個信任關係,我們可以從* .p12文件導入它,或者使用一系列證書和一組策略創建它。我也知道爲了確保一個服務器不受默認信任,我們可以使用SecTrustSetAnchorCertificates()來擴充SecTrustEvaluate()用於驗證服務器證書的根CA列表。將證書鏈存儲在應用程序鑰匙串中

現在,我如何確保這些錨定證書在隨後的啓動中可用?我可以將證書,密鑰和身份存儲在應用程序密鑰鏈中,但不能存儲證書鏈。即使我將所有證書存儲在鏈中,我如何知道哪些證書將用作主證書?

想到的一個解決方案是從鑰匙串中獲取全部證書並將它們設置爲錨定證書。另一種方法可能是將磁盤上的所有證書鏈都視爲* .p12文件,並在每次應用程序運行時加載一次。從蘋果Devforums

回答

2

eskimo1回答了這個如此:

首先,你並不需要證書存儲在鑰匙串。如果你喜歡,你可以將它們存儲在別處(並且使用SecCertificateCreateWithData創建SecCertificateRef)。

其次,你的問題談論.p12文件,但我不知道這與事情有什麼關係。一般而言,您只能使用.p12文件來分發機密信息,而證書不是機密的。

最後,您可以通過僅存儲該鏈中每個證書的持久引用(或通過存儲每個證書的實際數據)來存儲證書鏈。