2014-02-05 237 views
0

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

因此我执行以下步骤:

  1. 创建一个空文件keystore.jks
  2. 创建密钥工具文件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

但我总是得到错误:

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

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

回答

0

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

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

下面的步骤必须在正确的顺序进行:

  1. 创建随机公钥/私钥对。私钥通常保存密码保护
  2. 创建一个包含从步骤1
  3. 公钥发送证书请求,其签名并发送你回来证书(你有server.cert)信任中心的证书请求
  4. 保存从与返回的证书

因此你总是试图重新执行步骤1和4步没有2和3。这样你得到的是“不匹配步骤1中一起私钥“错误。

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

+0

你能澄清步骤4吗?当我用'keytool -genkey'生成一个新密钥时,它是否已经保存在密钥库中?所以我只需要导入证书?或者,我**是否有从密钥库中导出该私钥的人,将其与证书捆绑在一起,然后将它们重新导入到密钥库中? – Slav

相关问题