我试图导入一个新的SSL证书,但它不知何故是指旧证书

时间:2017-08-18 09:23:04

标签: java ssl https keystore keytool

我有一个主机abc.com我已经在其上安装了SSL证书,但由于某种原因,主机名已更改为xyz.com所以我为此主机创建了一个新的SSL证书但不知何故它仍然指的是用于abc.com的旧证书。

以下是我用于创建Keystore和CSR文件的命令:

---KeyStore generation Command

keytool -genkey -alias xyz -keyalg RSA -keystore xyz.keystore -keysize 2048

--CSR file generation command

keytool -certreq -alias xyz -file xyz.csr -keystore xyz.keystore -sigalg SHA1withRSA

从CSR文件中我已经为站点生成了可信证书。 我提供了3个证书根证书,颁发者证书和站点证书。

首先我使用以下命令将根证书,然后颁发者证书和站点证书导入密钥库:

-- Importing root certificate
keytool -keystore xyz.keystore -storetype JKS -storepass xyz123 -import -v -noprompt -trustcacerts -alias root -keypass xyz123 -file root.cer -keystore xyz.keystore -storetype JKS -storepass xyz123

-- Importing issuer certificate
keytool -keystore xyz.keystore -storetype JKS -storepass xyz123 -import -v -noprompt -trustcacerts -alias issuer -keypass xyz123 -file issuer.cer -keystore xyz.keystore -storetype JKS -storepass xyz123

-- Importing site certificate
keytool -keystore xyz.keystore -storetype JKS -storepass xyz123 -import -v -noprompt -trustcacerts -alias xyz -keypass xyz123 -file xyz.cer -keystore xyz.keystore -storetype JKS -storepass xyz123

现在检查证书是否已在我在命令下面使用的密钥库中正确导入:

keytool -list -keystore xyz.keystore

我可以在密钥库中看到4个条目,1个PrivateKeyEntry和3个trustCertEntries。

现在我已经在tomcat的server.xml文件的Connector标签中使用了这个密钥库及其keyPass。 server.xml条目如下所示:

 <Connector port="8443" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" 
 maxSpareThreads="75" enableLookups="false" acceptCount="100" 
 disableUploadTimeout="true" keystoreFile="xyz.keystore" keystorePass="xyz123"/>

我重新启动服务器并尝试访问该应用程序,但它仍然指的是旧证书。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

导入签名证书时,您不应指定-trustcacerts。应该只有两个可信条目和一个私钥。你根本没有打扰私钥。

答案 1 :(得分:0)

经过大量搜索,我找到了这个命令,

keytool -list -keystore ~/.keystore -v

这将列出您所在位置的默认密钥库中的证书。 (~/表示它是你在linux上的家乡位置)

我可以在那里看到旧证书。我从那里删除了旧证书,然后将新的密钥库详细信息添加到tomcat中的server.xml文件中,现在它正确地引用了新证书。