我们丢失了用于在服务器故障期间生成CSR的原始密钥库。我们备份了私钥(.key文件)和原始CSR(.csr文件)。有可能用这些重建密钥库吗?由于创建证书链的所有说明都需要原始密钥库。
这适用于Tomcat 7.0.27。
由于
答案 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
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
答案 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进行续订。