密钥库类型:使用哪个?
通过查看java.security
my
的文件JRE
,我发现默认使用的密钥库类型设置为JKS
。在这里,列出了可以使用的密钥库类型。
有推荐的密钥库类型吗?不同密钥库类型的优缺点是什么?
回答:
除了链接到的标准名称列表中列出的类型以外,还有更多类型。您可以在加密提供程序文档中找到更多信息。最常见的肯定是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钥匙串。
以上是 密钥库类型:使用哪个? 的全部内容, 来源链接: utcz.com/qa/398952.html