gpt4 book ai didi

java - 如何将证书从 PEM 转换为 JKS?

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:28 25 4
gpt4 key购买 nike

我必须将 PEM 格式的证书转换为 Java keystore 。

在 Windows 服务器上将这个与 tomcat 一起使用

我有那些文件:

  • cert_request.csr

      -----BEGIN CERTIFICATE REQUEST-----
    ...
    -----END CERTIFICATE REQUEST-----
  • cert_public_key.pem

      -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
  • cert_private_key.pem

      -----BEGIN ENCRYPTED PRIVATE KEY-----
    ...
    -----END ENCRYPTED PRIVATE KEY-----
  • cert.txt

      contains an 16 digit key

我尝试合并 pem 文件(通过将两个文件链接在一起)并使用 openssl 将其转换为

  • .der 文件并使用 keytool 将其导入新的 keystore
  • 与.p12相同
  • 直接导入到 keystore

我也尝试过改变

    -----BEGIN ENCRYPTED PRIVATE KEY-----
...
-----END ENCRYPTED PRIVATE KEY-----

进入

    -----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

并尝试了上面的3种方式

我需要做什么才能获得工作证书?

编辑:

我将 cert_public_key.pem 和 cert_private_key.pem 合并为 cert_comb.pem

    -----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN ENCRYPTED PRIVATE KEY-----
...
-----END ENCRYPTED PRIVATE KEY-----

最佳答案

您不清楚合并了哪些文件,但应该可以使用 openssl 将证书和私钥组合到 PKCS#12:

cat cert_public_key.pem cert_private_key.pem >combined.pem
openssl pkcs12 -export -in combined.pem -out cert.p12

或即时但(更新:)私钥必须在第一位:

cat cert_private_key.pem cert_public_key.pem | openssl pkcs12 -export -out cert.p12 

如果您的证书需要任何链证书——CA 应该在您提交时告诉您CSR 并且他们颁发了证书——现在最简单的方法也包括它(他们)。

然后 (1) 一些 Java 程序实际上可以直接使用 pkcs12 作为 keystore ,但是 (2) 如果您需要或更喜欢 JKS,请使用 keytool:

keytool -importkeystore -srckeystore cert.p12 -srcstoretype pkcs12 -destkeystore cert.jks 

如果您关心生成的 JKS 中的别名,最容易在转换后修复它。

此外:仅更改加密 PEM 中的标签并不会对其进行解密,更改也不会从通用 PKCS#8 到 RSA 的标签实际上改变了数据以匹配(而且它们是不同的,虽然只有一点点)。如果您确实想要一个带有解密私钥的单独 PEM 文件:

openssl pkey -in encryptedpk8 -out clearpk8.pem # 1.0.0 up
openssl pkcs8 -in encryptedpk8 -out clearpk8.pem # 1.0.0 up
openssl pkcs8 -topk8 -nocrypt -in encryptedpk8 -out clearpk8.pem # below 1.0.0
openssl rsa -in encryptedpk8 -out clearrsa.pem

关于java - 如何将证书从 PEM 转换为 JKS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22296312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com