我正在尝试使用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”证书)。
tomcat.csr
-----BEGIN ... -----END
tomcat.crt
thawte.crt
当我尝试导入其中任何一个时,都会失败:
$ 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选项添加到这两个命令中的任何一个都不会更改任何内容。
-trustcacerts
知道我在这里做错了吗?
我终于明白这里发生了什么。事实证明,我从Thawte获得的答复格式为PKCS#7,而keytool期望以X.509格式进行认证。
keytool
openssl 可用于将证书从一种格式转换为另一种格式:
openssl
$ openssl pkcs7 -in thawtetest.crt -print_certs | openssl x509 > thawtetest.x509
现在,您可以thawtetest.x509使用keytool 导入,并tomcat.crt在其后面。
thawtetest.x509