我们丢失了用于在服务器故障期间生成 CSR 的原始密钥库。我们有私钥(.key 文件)和原始 CSR(.csr 文件)的备份。是否可以用这些重建密钥库?由于创建证书链的所有说明都需要原始密钥库。
这适用于 Tomcat 7.0.27。
谢谢
是的,这应该是可能的。但除了私钥之外,您还需要 CA 返回的证书(不是 csr)。步骤可以在这里找到
如果您只有 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
caname
,chain
并且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
我遇到了与“证书链长度”相同的问题为“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"
/>
似乎我们让它正常工作的唯一方法是撤销我们现有的证书并用新的 CSR 更新它。