2014-10-08 260 views
1

我有这样的问题,当我输入一个认证文件到密钥库:的keytool错误:java.lang.Exception的:在回复和密钥库的公共密钥不匹配

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

我这样做此操作:

1)创建我的服务器上的密钥库:

keytool -genkey -keystore C:\keystore\keystore -alias jboss -keyalg RSA 

2)我有domain.pfx,并将其转换白衣这个命令:

  • OpenSSL的PKCS12 -in domain.pfx -clcerts -nokeys -out domain.cer

  • OpenSSL的PKCS12 -in domain.pfx -nocerts -nodes -out domain_encrypted.key

  • OpenSSL的RSA -in domain_encrypted.key退房手续domain.key

现在我有3个新的文件:

  • domain.cer
  • domain_encrypted.key
  • domain.key

3)在端部,导入domain.cer到C:\在JBoss别名密钥库\密钥库:

keytool -import -alias jboss -keystore C:\keystore\keystore -file C:\cert\domain.cer 

但我有此错误:

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

问题是什么?

+0

你为什么要这么做?您所需要的只是-genkey步骤,一个-certreq步骤,一个CA的CSR签名步骤,然后是一个导入步骤,您根本不需要使用openssl。 – EJP 2014-10-27 11:03:26

回答

-1

今天我有同样的问题。我通过在导入证书时使用不同的别名来解决此问题。所以我在导入证书时生成keystone和alias2时有alias1。

+2

这是完全错误的事情。使用新的别名会导致证书作为可信证书导入,而不是与私钥关联。 – EJP 2014-10-27 11:01:09

0

密钥库包含两个条目类型:(。其结合存储在与在密钥库中导入的证书的密钥库中的私钥)

  1. 私人密钥输入这里,别名必须保持相同,其在创建密钥库文件时使用。

  2. 可信条目: - 此条目包含所有可信证书条目,包括根证书和中间证书。

如果密钥库被绑定到一个域在server.xml文件的tomcat,那么它必须包含私钥项。

现在,根据您执行的步骤,您首先创建了一个密钥存储库(其中生成了一个私有密钥),然后您尝试将密钥库中的证书导入。但是在命令中,您没有使用使用openssl转换的私钥;您使用了生成密钥库时新生成的私钥。

当你有domain.pfx与你哟可以马上使用下面的命令keytool转换它:

keytool -importkeystore -srckeystore domain.pfx -srcstoretype pkcs12 -destkeystore name_of_the_keystore_file.jks -deststoretype jks 

注意:确保密钥库密码和密钥密码保持不变。