4

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

这适用于 Tomcat 7.0.27。

谢谢

4

4 回答 4

3

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

于 2012-04-10T16:18:24.017 回答
2

如果您只有 CSR 文件和丢失的证书,由 CA(Thawte 等)签名,您可以再次将此 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

canamechain并且CAfile是可选参数,它们将 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
于 2012-04-10T20:05:47.207 回答
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"
/>
于 2014-03-14T13:29:36.613 回答
-3

似乎我们让它正常工作的唯一方法是撤销我们现有的证书并用新的 CSR 更新它。

于 2012-04-11T12:24:02.810 回答