是否可以在新的密钥库中安装现有的私钥和ssl证书?

时间:2012-04-10 15:42:23

标签: tomcat ssl keystore

我们丢失了用于在服务器故障期间生成CSR的原始密钥库。我们备份了私钥(.key文件)和原始CSR(.csr文件)。有可能用这些重建密钥库吗?由于创建证书链的所有说明都需要原始密钥库。

这适用于Tomcat 7.0.27。

由于

4 个答案:

答案 0 :(得分:3)

是的,这应该是可能的。但除了私钥之外,您还需要CA返回的证书(而不是csr)。可以找到步骤here

答案 1 :(得分:2)

如果您只有CSR(Thawte等)签署的CSR文件和丢失的证书,您可以将此CSR再次发送给CA进行签名。

暗示,您拥有由CA签署的密钥和证书,采用PEM格式。

将证书和密钥转换为PKCS#12容器:

openssl pkcs12 -export -in newcert.pem -inkey newkey.pem -out server.p12 -name test_server -caname root_ca -chain -CAfile cacert.pem

canamechainCAfile是可选参数,它们将CA链添加到容器中。

Tomcat支持PKCS#12证书,但是如果你想要JKS,它可以通过keytool从PKCS#12完成(从Java 6开始):

keytool -importkeystore -deststorepass mypass -destkeypass mypass -destkeystore keystore.jks -srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass p12pass -srcalias test_server -destalias test_server

答案 2 :(得分:2)

我遇到了同样的问题,“证书链长”即将出现为“1”,我只是开始放松所有希望尝试了很多方法,但设法通过安装和使用APR来解决:

https://stackoverflow.com/a/22391211/2802916

现在server.xml中的连接器如下所示:

<Connector port="443"
    SSLEnabled="true"
    maxThreads="150"
    scheme="https"
    secure="true"
    clientAuth="false"
    SSLCertificateFile="thecertificate.cer"
    SSLCertificateKeyFile="privatekey.key"
    SSLCACertificateFile="intermediate.crt"
    SSLPassword="thePassForPrivateKey"
/>

答案 3 :(得分:-3)

似乎我们使其正常运行的唯一方法是撤销现有证书并使用新的CSR进行续订。