【问题标题】:how does client set the certificate chain in the keystore?客户端如何在密钥库中设置证书链?
【发布时间】:2017-12-04 08:33:13
【问题描述】:

我们的客户端需要使用双向 SSL 身份验证连接服务器。在我的情况下,我使用“keytool -genkey”生成密钥库并使用“keytool -certreq”导出 csr 文件。服务器端获取我的 csr 文件并由 CA 签名,然后返回一个由 CA 和根 CA cer 签名的新 cer 文件。 问题是我应该如何更新我的密钥库以完成服务器端身份验证? 这是我生成密钥库的步骤。

keytool -genkey -alias client -keyalg RSA -keystore D://key/client.keystore -validity 3650
keytool -certreq -alias client -keystore D://key/client.keystore -file client.csr

使用wireshark,我可以找到我的客户端发送一个由我的自签名密钥库生成的证书,但服务器端实际上将CA签名的cer文件作为客户端cer导入它的信任库,这使得每次握手都失败。

PS:服务器的cer文件已经导入到我的信任库,所以问题只在客户端的cer文件上。Here is the wireshake capture

【问题讨论】:

    标签: ssl keytool ca cer


    【解决方案1】:

    您需要将签名的证书和链导入生成密钥对和 CSR 的同一密钥库,使用相同的别名,使用-trustcacerts 选项。

    但是,您的捕获显示问题出在服务器证书上。客户证书甚至都没有被要求,更不用说发送了。

    【讨论】:

    • 感谢EJP。其实很简单,只要用'keytool -importcert'命令替换同一个别名即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 2023-03-07
    • 2019-12-05
    • 1970-01-01
    • 2011-02-15
    相关资源
    最近更新 更多