私钥和密钥库中签名证书之间的链接

时间:2014-04-23 08:02:12

标签: java authentication ssl server-side keytool

我在做jetty SSL configuration

我使用keytool创建了CSR,它已经为密钥库添加了私钥

根据CSR收到证书,将证书转换为DER格式,并将证书作为trustcacerts导入密钥库

签名证书在证书路径中具有根/中间证书

我还在将其转换为DER格式后,在受信任的根证书下的IE中安装了根证书和中间证书。

使用https时,浏览器会显示证书错误,并将证书视为自签名证书。

问题

这是否意味着由于证书在证书路径中没有Root / intermediate证书,因此不考虑已安装的签名证书?

虽然从CA收到的签名证书具有证书路径中的根/中间证书的链接。

请告知过程中是否有任何问题。为此添加了keytool命令。

创建密钥库

  

keytool -keystore serverdns.keystore -alias server -genkey -keyalg RSA   -keysize 2048

创建CSR

  

keytool -certreq -alias server -keystore serverdns.keystore -file   server.csr

安装签名证书

  

keytool -import -trustcacerts -alias cert -keystore serverdns.keystore   -file signedcert.der.cer

我在安装签名证书时尝试使用相同的别名'server',但失败并显示错误

  

keytool错误:java.lang.Exception:无法建立链接   回复

2 个答案:

答案 0 :(得分:1)

您需要使用与私钥和CSR相同的别名导入签名证书。否则它们之间没有连接,新证书只是另一个证书。您不应该使用-trustcacerts执行此步骤,如果系统询问您是否信任该证书,则说明您的别名错误。

答案 1 :(得分:-1)

  

keytool error:java.lang.Exception:无法从回复

建立链

如果您的CA位于信任库中,请查看选项-trustcacerts。 此外,您必须先将CA的中间证书添加到密钥库中,然后才能使用signedcert.der.cer