-1

我们的客户端需要使用双向 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 文件上。这是握手捕获

4

1 回答 1

0

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

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

于 2017-12-04T09:31:27.720 回答