Keytool - 将证书导入密钥库

时间:2014-02-05 12:12:43

标签: ssl certificate ssl-certificate keytool

我正在尝试将证书导入密钥库。

因此我执行以下步骤:

  1. 创建一个空的keystore.jks文件
  2. 使用keytool创建文件contentent: keytool -genkey -alias server-alias -keyalg RSA -keypass changeit -storepass changeit -keystore keystore.jks

  3. 将我的证书添加到该密钥库: keytool -import -v -trustcacerts -alias server-alias -file C:\server.cert -keystore keystore.jks -keypass changeit -storepass changeit

  4. 但我总是得到错误:

    keytool error: java.lang.Exception: Public keys in reply and keystore don't match
    

    我在这里做错了什么,如何解决?

1 个答案:

答案 0 :(得分:0)

在第二步中,您始终生成一个新密钥,但如果要将证书及其私钥导入密钥库,则必须使用与证书匹配的密钥。

因此,您需要在有人签署服务器证书之前创建的密钥(存储在C:\ server.cert中的密钥)。

必须按正确的顺序执行以下步骤:

  1. 创建随机公钥/私钥对。私钥通常保存密码保护
  2. 创建包含步骤1中的公钥的证书申请
  3. 将证书请求发送到信任中心,信任中心签名并将证书发送给您(您拥有的server.cert)
  4. 将步骤1中的私钥与返回的证书一起保存
  5. 因此,您总是尝试在没有步骤2和3的情况下重新执行步骤1和步骤4.因此,您将收到“不匹配”错误。

    完成所有步骤1-4。或者使用属于server.cert证书的已保存私钥(希望您仍然拥有它)。