除了链接到的标准名称列表中列出的类型以外,还有更多类型。您可以在加密提供程序文档中找到更多信息。最常见的肯定是
JKS(默认)和
PKCS12(对于PKCS#12文件,通常带有扩展名
.p12,有时带有
.pfx)。
如果您停留在Java世界中,那么JKS是最常见的。PKCS#12不是特定于Java的,使用从浏览器备份或来自基于OpenSSL的工具备份的证书(带有私钥)特别方便(
keytool在Java
6之前无法转换密钥库并导入其私钥) ,因此您必须使用其他工具)。
如果您已经有PKCS#12文件,则
PKCS12直接使用该类型通常会更容易。可以转换格式,但是如果直接选择密钥库类型,则几乎没有必要。
在Java 7中,
PKCS12它主要用作 密钥库, 但对 信任 库
用处不大(请参阅密钥库和truststore之间的区别(http://codingdict.com/questions/105824),因为没有私有密钥就无法存储证书条目。相反,JKS并不需要每个条目都是私钥条目,因此您可以拥有仅包含证书的条目,这对于信任存储很有用,在信任存储中您存储了信任的证书列表(但是您没有他们的私钥)。
这在Java 8中已更改,因此您现在也可以在
PKCS12商店中拥有仅证书条目。(有关这些更改和更多计划的更多详细信息,请参见JEP
229:默认情况下创建PKCS12密钥库。)
还有其他一些密钥库类型,可能不太常用(取决于上下文),包括:
PKCS11
,用于PKCS#11库,通常用于访问硬件加密令牌,但是Sun提供程序实现也通过此支持NSS存储(来自Mozilla)。BKS
,使用BouncyCastle提供程序(通常用于Android)。Windows-MY
/Windows-ROOT
,如果要直接访问Windows证书存储区。KeychainStore
,如果您想直接使用OSX钥匙串。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)