java - 我正在尝试导入新的 SSL 证书,但不知何故它指的是旧证书

标签 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 个证书提供给我 Root 证书、Issuer Certificate 和 Site Certiticate。

首先,我使用以下命令将根证书、颁发者证书和站点证书导入到 keystore 中:

-- 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

现在检查证书是否正确导入到我使用以下命令的 keystore 中:

keytool -list -keystore xyz.keystore

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

现在我在 tomcat 的 server.xml 文件的 Connector 标签中使用了这个 keystore 和它的 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。应该只有两个可信条目和一个私钥。您根本没有打扰私钥输入。

关于java - 我正在尝试导入新的 SSL 证书,但不知何故它指的是旧证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45753084/

相关文章:

java - 使用 java 中的键对 Json 响应进行分组 - android studio

security - 在 IIS 中需要客户端证书而不需要 SSL

ssl - 从 https 和 https ://www. 重定向到 https://www

iphone - 如何实现 ssl 和 https

python - 如何在 python 中发送 HTTPS 数据包?

Java HTTPS 连接转发

java - Install4j - 在失败的情况下是否有任何完成阶段选项?

java - 简单的 mysql/jdbc 代码导致内存泄漏?

Java 的类型是什么(long a - double b)

hadoop - Mapreduce 作业历史服务器和 yarn web UI 不遵守 HTTPS_ONLY 政策