繁体   English   中英

从 CRT 和 PEM 文件创建 JKS

[英]Create JKS from CRT and PEM file

我的客户从 Go-Daddy 向我发送了三个文件( 86f8ac00fcd77994.crt、86f8ac00fcd77994.pem 和 gd_bundle-g2-g1.crt )。 我需要从这些文件创建一个 jks 密钥库。 可能吗? 谢谢!

PD:对不起我的英语!

是的,但你不想。

Java 使用 JKS 之类的密钥库文件和 memory 中的KeyStore对象来存储两种(或三种)不同类型的信息,但许多人不准确地将它们称为证书,并且不了解巨大而关键的区别。 具体来说(并更改 javadoc 中的顺序):

  • TrustedCertificate 条目包含“[一个] 证书......属于另一方......这种类型的条目可用于验证其他方。”

  • 一个 PrivateKey 条目包含一个私钥加上一个证书链“由给定实体用于自我认证”。

  • 为了完整起见,一些密钥库可以包含一个 SecretKey 条目,但 JKS 不能,即使那些可以包含此功能的也很少使用。

您拥有的文件都是证书(一个在十六进制文件中,几个在捆绑文件中),而不是私钥。 您可以将它们中的每一个导入到 TrustedCert 条目中,但 TrustedCert 条目仅用于验证通信的另一端——即当您连接到服务器时,TrustedCert 条目用于验证该服务器的证书,如果您接受来自客户端的连接并请求客户端身份验证(这不是默认设置并且很少见),TrustedCert 条目用于验证该客户端的证书。 但是由于此证书是由 GoDaddy 颁发的,如果它被您与之通信的服务器或客户端正确使用(及其链),则您不需要任何 TrustedCert 条目,因为它会根据 Java 的默认信任库中已有的根进行验证。

如果您想使用此证书来验证“您自己”(即您的系统)——例如,如果您想要运行此证书标识的 TLS 服务器(可能但不一定是 HTTPS web服务器)——您需要PrivateKey 条目,而不是任何 TrustedCert 条目,并且您无法创建 PrivateKey 条目,因为您没有私钥。 从 GoDaddy 获得此证书的人确实有私钥,因为证书申请过程需要它,所以他们可以运行服务器,但他们没有给你,所以你不能。

因此,您提出的问题的答案——您能否将这些证书放入 JKS 中——是的,您可以。 但这完全是浪费时间,因为生成的 JKS 不能用于任何事情并且毫无价值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM