通过查看文件java.security
of my JRE
,我看到默认使用的密钥库类型设置为JKS
. Here,有一个可以使用的密钥库类型的列表。
有推荐的密钥库类型吗?不同密钥库类型的优点/缺点是什么?
与您链接到的标准名称列表中列出的类型相比,还有更多类型。您可以在以下位置找到更多内容加密提供商文档。最常见的肯定是JKS
(默认)和PKCS12
(对于 PKCS#12 文件,通常带有扩展名.p12
或有时.pfx
).
如果您留在 Java 世界中,JKS 是最常见的。 PKCS#12 不是 Java 特定的,使用从浏览器备份或来自基于 OpenSSL 的工具(带有私钥)的证书特别方便(keytool
在 Java 6 之前无法转换密钥库并导入其私钥,因此您必须使用其他工具)。
如果您已有 PKCS#12 文件,则使用PKCS12
直接输入。可以转换格式,但如果您可以直接选择密钥库类型,则很少需要转换格式。
在Java 7中,PKCS12
主要用作keystore但少了一个信任库(参见密钥库和信任库之间的区别),因为没有私钥就无法存储证书条目。相比之下,JKS
不要求每个条目都是私钥条目,因此您可以拥有仅包含证书的条目,这对于信任存储非常有用,您可以在其中存储您信任的证书列表(但您没有私钥)他们)。
这在 Java 8 中发生了变化,因此您现在可以在PKCS12
商店也有。 (有关这些变化和进一步计划的更多详细信息,请参见JEP 229:默认创建 PKCS12 密钥库.)
还有一些其他密钥库类型,可能不太常用(取决于上下文),包括:
-
PKCS11
,对于 PKCS#11 库,通常用于访问硬件加密令牌,但 Sun 提供程序实现还通过此支持 NSS 存储(来自 Mozilla)。
-
BKS
,使用 BouncyCastle 提供程序(通常用于 Android)。
-
Windows-MY
/Windows-ROOT
,如果您想直接访问Windows证书存储区。
-
KeychainStore
,如果你想直接使用OSX钥匙串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)