TOMCAT SSL 错误: 别名名称未识别为密钥条目。

36

我正在尝试配置Tomcat 6以使用由某人提供给我们的证书进行SSL设置。虽然我的SSL经验还只有几天,但我仍然必须配置这个该死的东西。

我收到了一个以DER格式提供的证书(从IE下载)。

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

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

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

我在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时犯了一些基本错误,或者这个东西应该正常工作,我只是犯了一个愚蠢的粗心错误?

非常感谢任何指导。

3个回答

50
汤姆猫需要的是证书及其私钥。证书是公共信息,任何用户都可以看到,但私钥只应该属于你自己:这是防止他人使用你的证书运行网站的方法。通过导入 "MyCompany.der",您只是导入了证书。
首先,您需要找到您的私钥所在的位置。(通常,即使向您发放证书的人也不应知道其私钥。)
私钥可能在证书申请过程中在浏览器内生成。尝试查看是否可以以 ".p12" / ".pfx"(PKCS#12)格式导出:如果存在,则应该将私钥捆绑在一起。如果是这样,您应该能够直接使用生成的文件作为密钥库,使用 "PKCS12" 存储类型:keystoreFile="store.pfx" keystorePass="password" keystoreType="PKCS12" (您可能不需要键别名,因为只会有一个键条目)。

3
谢谢,老兄。我也遇到同样的问题。.pfx证书解决了一切 :-) - Tony
6
对我来说,移除keyAlias这一行是解决方案。我们证书的负责人没有像以前那样为密钥-证书对指定别名。 - Banjer
3
许多网站正在介绍将 .cer 文件导入到站点密钥库的方法,那么在这种情况下,私钥存储在哪里?当您第一次为 .csr 创建文件时,它不是已经在站点密钥库文件中了吗? - Kevin
3
我必须添加keyAlias="1"以使Tomcat忽略它。否则,它会继续寻找名为"tomcat"的别名。 - Kimi Chiu
1
这也可能是因为证书被导入密钥库作为受信任的证书(trustedcertificate),而不是作为证书请求的回复。在这种情况下,Tomcat 也会生成这样的错误。如果无法将证书作为 CSR 的回复导入,则可能是由于未在导入中间和根证书之前(keytool 无法验证证书的真实性)导致的。在导入适当的证书作为 CSR 的回复之前,请先导入中间和根证书。 - Jarek Jóźwik
显示剩余3条评论

0

在重新启动Tomcat之前,请验证\lib\security文件夹中是否有新的/更新的证书文件(.cer和.csr)可用。


-1

您没有将别名添加到密钥库中。 默认别名为1,您可以使用此命令更改它。

keytool -list -v -keystore cert.p12 -alias 1

cert.p12 是密钥库的路径 1 是默认值,它会提示输入密钥库密码和新别名密钥。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接