我正在将新证书从新的密钥库 jks 文件导入到旧的 Java 密钥库中。我不确定旧的和新的密钥库是否使用相同的私钥。考虑到我已成功将新证书导入到旧密钥库中,旧密钥库是否可以与新证书一起使用?或者最好删除旧密钥库并仅使用新密钥库?
答案1
这在很大程度上取决于您如何使用密钥库 - 其中需要多少个证书等等。但是,如果这只是默认情况,即您运行一台服务器,该服务器提供一个证书以允许 SSL 连接,那么您最好创建一个新的密钥库并将其复制到您的 tomcat server.xml 所说的 jks 所在的位置。
证书需要以某种方式创建和格式化,才能在密钥库中实际工作——您可以通过下载来验证它是否正确密钥库浏览器双击证书后,查看是否显示完整的证书链。如果没有,则需要创建证书链,创建一个 p12 文件,并将其转换为密钥库:
创建具有以下结构的连接 pem 文件:
还可以创建另一个连接的 pem 文件,如下所示:
IE:
cat cert.pem intermediate.pem root.pem > fullchain.pem
cat intermediate.pem root.pem > cachain.pem
接下来,将其导入 p12 文件。确保您拥有用于创建证书的私钥副本,该副本位于链 pem 所在的同一目录中:
openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name tomcat -CAfile cachain.pem -caname root -name "my keystore"
然后使用 keystore explorer 打开 keystore.p12 并验证它是否正常。如果您的服务器真的很旧,您可能需要将其转换为 jks 格式,否则,p12 应该没问题。