我正在尝试导入新的 SSL 证书,但不知何故它指的是旧证书
I'm trying to import a new SSL certificate but somehow it's referring to the old one
我有一个主机 abc.com
,我在上面安装了 SSL 证书,但由于某种原因主机名被更改为 xyz.com
,所以我为这个主机创建了一个新的 SSL 证书但不知何故,它仍然指的是用于 abc.com
的旧证书。
以下是我用来创建密钥库和 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 个证书提供给我 Root 证书、Issuer Certificate 和 Site Certiticate。
首先,我使用以下命令将根证书、颁发者证书和站点证书导入到密钥库中:
-- 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"/>
我重新启动了服务器并尝试访问该应用程序,但它仍然指的是旧证书。
如有任何帮助,我们将不胜感激。
您在导入签名证书时不应该指定 -trustcacerts
。应该只有两个可信条目和一个私钥。你完全没有动过私钥入口
经过大量搜索,我终于找到了这个命令,
keytool -list -keystore ~/.keystore -v
这将列出您家中默认密钥库中的证书。 (~/
表示它是您在 linux 上的家庭位置)
我可以在那里看到旧证书。我从那里删除了旧证书,然后将新的密钥库详细信息添加到 tomcat 中的 server.xml
文件中,现在它正确地引用了新证书。
我有一个主机 abc.com
,我在上面安装了 SSL 证书,但由于某种原因主机名被更改为 xyz.com
,所以我为这个主机创建了一个新的 SSL 证书但不知何故,它仍然指的是用于 abc.com
的旧证书。
以下是我用来创建密钥库和 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 个证书提供给我 Root 证书、Issuer Certificate 和 Site Certiticate。
首先,我使用以下命令将根证书、颁发者证书和站点证书导入到密钥库中:
-- 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"/>
我重新启动了服务器并尝试访问该应用程序,但它仍然指的是旧证书。
如有任何帮助,我们将不胜感激。
您在导入签名证书时不应该指定 -trustcacerts
。应该只有两个可信条目和一个私钥。你完全没有动过私钥入口
经过大量搜索,我终于找到了这个命令,
keytool -list -keystore ~/.keystore -v
这将列出您家中默认密钥库中的证书。 (~/
表示它是您在 linux 上的家庭位置)
我可以在那里看到旧证书。我从那里删除了旧证书,然后将新的密钥库详细信息添加到 tomcat 中的 server.xml
文件中,现在它正确地引用了新证书。