8

我正在尝试使用 SSL 配置 Tomcat 服务器。我因此生成了一个密钥对:

$ keytool -genkeypair -alias tomcat -keyalg RSA -keystore keys

接下来我生成一个证书签名请求:

$ keytool -certreq -keyalg RSA -alias tomcat -keystore keys -file tomcat.csr

然后我将 的内容复制粘贴tomcat.csr到 Thawte 网站上的表格中,要求试用 SSL 证书。作为回报,我得到两个用 分隔的证书-----BEGIN ... -----END,我保存在tomcat.crt和下thawte.crt。(Thawte 将第二个证书称为“Thawte Test CA Root”证书)。

当我尝试导入它们中的任何一个时,它都会失败:

$ keytool -importcert -alias tomcat -file tomcat.crt -keystore keys
Enter keystore password:
keytool error: java.lang.Exception: Failed to establish chain from reply

$ keytool -importcert -alias thawte -file thawtetest.crt -keystore keys
Enter keystore password:
keytool error: java.lang.Exception: Input not an X.509 certificate

-trustcacerts选项添加到这些命令中的任何一个都不会改变任何内容。

知道我在这里做错了什么吗?

4

3 回答 3

14

我终于明白这里发生了什么。事实证明,我从 Thawte 得到的回复被格式化为 PKCS#7,而keytool期望以 X.509 格式进行认证。

openssl可用于将证书从一种格式转换为另一种格式:

$ openssl pkcs7 -in thawtetest.crt -print_certs |
  openssl x509 > thawtetest.x509

现在您可以使用 keytool 导入thawtetest.x509tomcat.crt就在它后面。

于 2010-04-12T06:43:10.720 回答
0

您应该能够使用 keytool 导入 PKCS#7 链,只要您使用的是更新的版本。将证书导出到不同的文件中也可以,但是如果您运行的是最新版本的 keytool,那么导入 PKCS#7 文件本身应该没有问题。

于 2010-06-28T19:53:25.553 回答
0

遇到同样的麻烦后,我发现这篇文章帮助了我。我将收到的试用证书放入一个文件中,并使用 keytool 导入以确保我使用的别名(keytool -alias param)不同(即,我在为请求创建证书时使用的别名不同)。这是一个奇怪的错误消息,因为它根本不喜欢您尝试导入相同的别名。

于 2010-10-03T08:31:44.353 回答