我正在尝试使用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选项添加到这两个命令中也不会更改任何内容。
你知道我做错了什么吗?
发布于 2010-04-12 14:43:11
我终于明白这是怎么回事了。事实证明,我从Thawte得到的回复是PKCS#7格式的,而keytool要求以X.509格式进行认证。
openssl可用于将证书从一种格式转换为另一种格式:
$ openssl pkcs7 -in thawtetest.crt -print_certs |
openssl x509 > thawtetest.x509现在你可以使用keytool导入thawtetest.x509,然后在它后面导入tomcat.crt。
发布于 2010-06-29 03:53:26
只要你使用的是更新的版本,你就应该能够使用PKCS#7导入keytool链。将证书导出到不同的文件中也可以,但如果您运行的是最新版本的keytool,那么导入PKCS#7文件本身应该没有问题。
发布于 2010-10-03 16:31:44
遇到同样的麻烦后,我找到了this post,它帮助我走出了困境。我将收到的试用证书放入一个单独的文件中,并使用keytool导入,确保我使用的别名(keytool -alias参数)是不同的(即与我为请求创建证书时使用的别名不同)。这是一个奇怪的错误消息,因为它不喜欢您尝试导入到相同的别名。
https://stackoverflow.com/questions/2606035
复制相似问题