数字证书:如何使用将 .cer 文件导入 .truststore 文件?

Posted

技术标签:

【中文标题】数字证书:如何使用将 .cer 文件导入 .truststore 文件?【英文标题】:Digital Certificate: How to import .cer file in to .truststore file using? 【发布时间】:2010-09-27 06:16:52 【问题描述】:

有没有人遇到过他们必须处理 .truststore 文件的地方?并知道如何将 .cer 导入 .truststore 文件?

我不确定是否必须使用 Java Keytool 或 Linux 命令(例如 openssl 命令)。

谢谢

【问题讨论】:

【参考方案1】:
# Copy the certificate into the directory Java_home\Jre\Lib\Security
# Change your directory to Java_home\Jre\Lib\Security>
# Import the certificate to a trust store.

keytool -import -alias ca -file somecert.cer -keystore cacerts -storepass changeit [Return]

Trust this certificate: [Yes]

changeit 是默认的信任库密码

【讨论】:

任何人都知道如何在 openssl 中进行操作 此命令让您将证书下载到名为nd certfile.txt 的文件中: openssl s_client -connect HOSTNAME:PORTNUM 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > certfile.txt --- 然后使用 keytool 将其导入您的信任库 您可以在浏览器中下载任何 SSL 安全网站的证书。在 FireFox 中,只需双击 URL 地址字段中的锁定符号。 如果您有“jssecacerts”文件,请改用“-keystore jssecacerts”。 “cacerts”被忽略【参考方案2】:

除了使用sed 过滤掉证书,您还可以通过openssl x509 -out certfile.txt 管道输出openssl s_client,例如:

echo "" | openssl s_client -connect my.server.com:443 -showcerts 2>/dev/null | openssl x509 -out certfile.txt

【讨论】:

此答案旨在改进 Christian 关于下载证书的已接受答案的评论。可能应该是评论。【参考方案3】:

将 .cer 文件导入信任库的方式与从 Firefox 导出导入 .crt 文件的方式相同。

您不必输入密钥库的别名和密码,只需键入:

keytool -v -import -file somefile.crt  -alias somecrt -keystore my-cacerts

最好使用 Java 安装中已经存在的 cacerts 文件 (jre\lib\security\cacerts),因为它包含安全的“流行”证书。

关于 cer 和 crt 差异的更新(只是为了澄清) 根据Apache with SSL - How to convert CER to CRT certificates? 和用户@Spawnrider

CER 是二进制形式的 X.509 证书,DER 编码。 CRT 是二进制 X.509 证书,封装在文本(base-64)编码中。 编码不一样。

【讨论】:

这意味着您导出的文件名称略有不同。它不会更改文件、问题或答案。指定别名是明智的:否则您可能会覆盖先前的导入。 .crt 和 .cer 有一些格式吗?扩展在证书中没有任何作用吗?关于别名的好点。 我回答我的问题:是的,crt 和 cer 具有相同的格式。一样。您可以在信任库中导入两者。

以上是关于数字证书:如何使用将 .cer 文件导入 .truststore 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用现有的 .cer、.p12 或 .pfx 证书签署应用程序?

如何将该根证书作为受信任的根导入 Azure 应用服务?

如何将rootca.cer,subca.cer和certificate.crt导入jks

将 .pfx 转换为 .cer

受信任的证书条目不受密码保护 java

受信任的证书条目不受密码保护 java