将Thawte试用证书导入Java密钥库

时间:2010-04-09 08:42:50

标签: tomcat ssl pki thawte

我正在尝试使用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.crtthawte.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选项添加到这些命令中的任何一个都不会改变任何内容。

知道我在这里做错了吗?

3 个答案:

答案 0 :(得分:14)

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

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

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

现在,您可以使用keytool导入thawtetest.x509,并在其后面导入tomcat.crt

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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