【问题标题】:link between private key and signed certificate in keystore密钥库中私钥和签名证书之间的链接
【发布时间】:2014-04-23 08:02:11
【问题描述】:

我正在做jetty SSL configuration

我使用 keytool 创建了 CSR,它向密钥库添加了一个私钥,

收到基于CSR的证书,将证书转换为DER格式,并将证书作为trustcacerts导入到keystore中

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

我还把IE中的根证书和中间证书转换成DER格式后安装在可信根证书下。

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

问题

这是否意味着安装的签名证书不被考虑,因为证书在证书路径中没有根/中间证书?

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

如果过程中有任何问题,请提出建议。为此添加 keytool 命令。

创建的密钥库

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

创建企业社会责任

keytool -certreq -alias server -keystore serverdns.keystore -file 服务器.csr

安装签名证书

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

我在安装签名证书时尝试使用相同的别名“服务器”,但失败并出现错误

keytool 错误:java.lang.Exception:无法从 回复

【问题讨论】:

    标签: java authentication ssl server-side keytool


    【解决方案1】:

    您需要使用与私钥和 CSR 相同的别名导入签名证书。否则它们之间没有联系,新证书只是另一个证书。在这一步你不应该使用-trustcacerts,如果你被问到是否信任你的证书,你的别名是错误的。

    【讨论】:

    • 我尝试使用相同的别名,但它失败并出现错误'keytool error: java.lang.Exception: Failed toestablish chain from reply' keystore details from keytool -list $ keytool -list -keystore serverdns.keystore 输入密钥库密码:密钥库类型:JKS 密钥库提供者:SUN 您的密钥库包含 1 个入口服务器,2014 年 4 月 10 日,PrivateKeyEntry,证书指纹(MD5):40:00:B6:9F:60:EF:2C:1A :87:51:17:26:E2:BC:F4:0C
    • 因此您需要先导入其他 CA 证书,使用 -trustcacerts 选项。
    • 使用相同的别名并将中间证书作为受信任的 CA 证书导入。现在工作正常。谢谢
    【解决方案2】:

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

    如果您的 CA 在信任库中,请查看选项 -trustcacerts。 此外,您还应该在 signedcert.der.cer 之前将 CA 的中间证书添加到您的密钥库中

    【讨论】:

    • 我正在使用 Internet Explorer 传递请求,并且我已经添加了根证书和中间证书,是否还必须在服务器密钥库上安装根证书/中间证书?我将密钥库用作信任库
    • 当您尝试将证书添加到服务器密钥库时,您还必须添加 CA 证书和中间证书。否则,您无法将证书作为 -trustcacerts 安装到服务器密钥库
    • 该参数适用于 CA 证书,而不适用于已签名的 CSR。
    • 我们在写同样的东西..添加 trustcacerts 来生成 CSR 没有意义
    猜你喜欢
    • 2017-02-05
    • 2011-02-08
    • 1970-01-01
    • 2019-04-20
    • 2015-02-17
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    相关资源
    最近更新 更多