TOMCAT SSL 错误:别名不能识别密钥条目

Posted

技术标签:

【中文标题】TOMCAT SSL 错误:别名不能识别密钥条目【英文标题】:TOMCAT SSL Error: Alias name does not identify a key entry 【发布时间】:2012-02-06 15:37:54 【问题描述】:

我正在尝试使用 SSL 和(由某人)提供给我们的证书来配置 Tomcat 6。我的 SSL 体验只持续了几天,但我仍然需要配置该死的东西。

我获得了 DER 格式的证书(从 IE 下载)。

接下来我创建了一个密钥库:

keytool -import -alias btIEgen -file MyCompany.der -keystore b2b.keystore

假设我使用“密码”作为密码

我在 Tomcat 的 server.xml 的 SSL 部分中配置了这个:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    keystoreFile="webapps/b2b.keystore" keystorePass="password" keyAlias="btIEgen" 
    clientAuth="false" sslProtocol="TLS" />

在启动 Tomcat 时出现该死的错误。

然后我在 b2b.keystore 上做了一个 keytool -list,并注意到别名都是小写的,所以在更新 server.xml 并重新启动后,我仍然得到同样的错误,但对于小写的别名。

然后我认为也许我需要一个根 CA。所以我重新创建了 b2b.keystore 如下:

keytool -import -alias root -file myCA.cer -keystore b2b.keystore

然后我针对 MyCompany.der 重新执行了我的 keytool 命令

但我仍然得到同样的错误,别名没有识别关键条目。

我想知道我在配置 tomcat 时是否犯了一些基本错误,或者这件事是否应该正常工作而我只是犯了一个愚蠢的粗心错误?

任何指导将不胜感激。

【问题讨论】:

【参考方案1】:

Tomcat 需要的是证书和它的私钥。证书是您的任何用户都可以看到的公共信息,但私钥应该是您的专有密钥:这是防止其他人使用您的证书运行网站的原因。通过导入MyCompany.der,您只是在导入证书。

你需要先找到你的私钥在哪里。 (通常情况下,即使是向您颁发证书的人也不应该知道其私钥。)

私钥可能是在证书申请过程中在您的浏览器中生成的。尝试查看是否可以以.p12/.pfx (PKCS#12) 格式导出:如果私钥在那里,这也应该捆绑私钥。如果是这样,您应该可以使用PKCS12 存储类型直接将生成的文件用作密钥库:keystoreFile="store.pfx" keystorePass="password" keystoreType="PKCS12"(您可能不需要密钥别名,因为只有一个密钥条目)。

【讨论】:

谢谢,遇到了同样的问题。 .pfx 证书改变了这一切:-) 删除 keyAlias 行是我的解决方案。我们的证书负责人没有像过去那样为密钥-证书对指定别名。 很多站点都在引入将.cer文件导入站点keystore的方式,那么,私钥存放在哪里呢?第一次创建 .csr 时,它不是已经在站点密钥库文件中了吗? 我必须添加 keyAlias="1" 以使 tomcat 忽略它。否则它将继续寻找名为“tomcat”的别名。 这也可能是因为证书作为可信证书 (trustedcertificate) 而不是作为对证书请求的回复导入到密钥库中。在这种情况下,tomcat 也会产生这样的错误。如果无法导入证书作为对 CSR 的回复,那么可能是由于之前未导入中间证书和根证书(keytool 无法验证证书真实性)> 导入中间证书和根证书之前然后导入正确的证书作为回复csr.

以上是关于TOMCAT SSL 错误:别名不能识别密钥条目的主要内容,如果未能解决你的问题,请参考以下文章

jetty SSL如何与java密钥库和多个别名一起使用

tomcat可以通过过滤主机别名来进行ssl重定向吗?

Tomcat 9 无效的密钥库密码

tomcat的SSL配置

为 Tomcat 7 配置 SSL 会导致 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 错误

了解密钥库、证书和别名