2010-01-27 55 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