2010-01-27 95 views

回答

4

PKCS#12文件可以包含各種對象,但通常包含證書和私鑰。證書是公鑰和其他事物(包括簽名)的容器。

根CA通常被表示爲證書(具有虛擬簽名,傳統上是自簽名)。使這種證書成爲「根CA」的是一種編程屬性,應用程序或操作系統在該屬性中聲明:「在我信任的此證書中」。

可以將根CA證書存儲在PKCS#12文件中。不能做的是將其作爲「根」存儲:證書放在文件中,而不是聲明證書是可信的屬性ex nihilo。更詳細地說,PKCS#12是一種開放格式,但如果您想將某些內容存儲在PKCS#12文件中,並在另一端正確讀取它,則必須存在某種關於對象位如何的約定解釋。對於PKCS#12文件和信任設置,這種約定不存在(尚)。

你沒有說明你正在使用哪種語言;我假設Java。在Java中,有一個KeyStore類,用給定的「類型」獲得,其中一個是「pkcs12」。那麼你會發現,在JCA文檔中(在「密鑰管理」),如下:

作爲JDK 6,在「PKCS12」存儲信任證書標準也尚未建立,因而「JKS」或「jceks」應該用於可信證書。

這說明了一切。

+0

問題是我試圖加密郵件使用此http://javamail-crypto.sourceforge.net/,當我嘗試導入其他然後一個pkcs12密鑰庫我得到以下異常: java.io.IOException :流不代表PKCS12密鑰存儲 – woezelmann 2010-01-27 14:48:23

+1

對於那些誰intededted - 我發現這個工具http://sourceforge.net/projects/portecle/和我正是我想要的:D – woezelmann 2010-01-28 09:01:17

+0

如果你能看到我的問題[這裏](http://stackoverflow.com/questions/11606281/how-to-add-pfx-certificate-file-in-keystore-using-android-2-3-3)並回答如果可能的話。我不知道我應該在這裏評論這個或沒有,但我發現這個話題類似於我的問題,我真的需要幫助這就是爲什麼我在這裏評論。我希望沒有人會對此有任何異議。 – AndroidLearner 2012-07-23 04:07:38