【问题标题】:how to add/convert certificate file into pkcs12 file如何将证书文件添加/转换为 pkcs12 文件
【发布时间】:2019-05-27 16:13:35
【问题描述】:

我已收到三个证书(.CER 文件)来访问生产服务器。我将如何将这些证书添加/转换为 PKCS12 文件。

【问题讨论】:

  • 你也有私钥吗?在密钥库中?
  • 为了访问生产环境,我只收到了三个证书(没有密钥/别名等)。但在我的开发环境中,我有可用的密钥库文件、别名和密码以及 PKSC12 文件。
  • 你打算如何使用 PKCS12 文件?这些证书是服务器证书和 CA 证书的证书链吗?
  • 代码在开发环境中运行良好,我有几个证书(PKCS12)用于签名和加密以将消息发送到服务器。还有我用来生成信任库文件的自签名证书(JKS)。现在我已经收到了三个证书(.CER 文件)来访问生产服务器。我将如何将这些证书添加/转换为 PKCS12 文件和信任库文件。

标签: java x509certificate pkcs#12 jks cer


【解决方案1】:

首先将您的证书导出到密钥库,然后将密钥库作为 pkcs12 文件导入。如果你安装了 java ,你可以使用 keytool 命令来完成这两者。

1) /jre/bin/keytool -importcert -alias cert1 -keystore keystore.jks -file Cert1.cer
2) /jre/bin/keytool -importkeystore -srckeystore keystore.jks -srcalias cert1 -destkeystore keystore.p12 -deststoretype PKCS12


也可以使用 openssl 完成类似的步骤。

【讨论】:

  • 我正在运行第一个命令 keytool -export -alias cert1 -keystore new_truststore.jks -file ProduCert.cer 它给了我错误文件 new_truststore.jks 不存在。如果我给我的开发环境 JKS 文件,那么我得到别名 cert1 不存在。
  • 这就是我所做的: 1. keytool -importcert -alias medicare -keystore storeskey.jks -file ProduCert.cer 2. keytool -importkeystore -srckeystore storeskey.jks -srcalias medicare -destkeystore keystore。 p12 -deststoretype PKCS12 我收到以下异常:导入别名医疗保险条目时出现问题:java.security.KeyStoreException:不支持 TrustedCertEntry。未导入别名医疗保险条目。请提出建议。
【解决方案2】:

我遇到了同样的错误,当它说“你想退出导入过程吗? [no]:' 继续输入'no'。最后说:导入命令完成:1项成功导入,2项失败或取消。

它成功了,我的所有证书都正确导入了新格式。

【讨论】:

    【解决方案3】:

    我只是使用了旧版本的 keytool 可执行文件,问题已解决。

    【讨论】:

      【解决方案4】:

      您签署证书的服务器 $(hostname -f).pem 应该与您计划导入证书的节点具有相同的 java 版本,如下所示:

      $JAVA_HOME/bin/keytool -importcert -alias $(hostname -f) -file /opt/cloudera/security/pki/$(hostname -f).pem -keystore /opt/cloudera/security/pki/$ (主机名 -f).jks

      如果您在服务器上使用较低版本来签署您的证书,但您在节点上使用新的 java 版本进行 TLS/SSL,您将看到警告。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-15
        • 2020-03-12
        • 2018-11-15
        • 1970-01-01
        • 1970-01-01
        • 2020-04-11
        • 2010-11-30
        • 2014-01-22
        相关资源
        最近更新 更多