从让我们加密 pem 文件的 OpenSSL 创建的 PKCS12 密钥库创建 PKCS12 密钥库是否仍然需要 keytool?

时间:2021-05-12 18:52:01

标签: java ssl openssl lets-encrypt keytool

我使用 Java 11 (AdoptOpenJDK),keytool uses PKCS12 by default since Java 9,我需要一个用于 Jetty 11 的 PKCS12 密钥库。让我们加密给我两个 pem 文件。因此,我使用 OpenSSL 将这 2 个 pem 文件转换为 PKCS12 密钥库,并按照 a tutorial 中的建议使用 keytool:

openssl pkcs12 -export -inkey /etc/letsencrypt/live/$domainName/privkey.pem -in /etc/letsencrypt/live/$domainName/fullchain.pem -out /etc/letsencrypt/live/$domainName/jetty.pkcs12 -passout "pass:$srcKeystorePassword"
keytool -importkeystore -noprompt -srckeystore /etc/letsencrypt/live/$domainName/jetty.pkcs12 -srcstoretype PKCS12 -srcstorepass $srcKeystorePassword -destkeystore /etc/letsencrypt/live/$domainName/keystore -deststorepass $destKeystorePassword

第二行不是没用吗(除了使用另一个密码)?我现在无法自己检查它,因为我昨天超出了 Let's Encrypt 的每周限制,而且我没有保留创建的 pem 文件。我写了 a script to ease self-hosting,我想从中删除任何不必要的步骤。

我可以简单地复制 OpenSSL 创建的 PKCS12 密钥库吗?有什么我遗漏的微妙之处吗?

1 个答案:

答案 0 :(得分:1)

keytool 对于仅支持 JKS 的应用服务器或软件是必需的,但在我的情况下不再需要,因为 Jetty 11 支持 PKCS12。

请注意,keytool 从 Java 9 开始使用 PKCS12 by default(即当您不强制使用存储类型时),但已经可以将此存储类型用作 -storetype pkcs12 的选项since Java 6(甚至可能在早期版本中)。

相关问题