密钥库类型:使用哪个?

通过查看java.securitymy

的文件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

回到顶部