keytool -importkeystore似乎没有用

时间:2015-05-17 10:18:59

标签: ssl soapui

在soapUI 5.1.3中,我在首选项>中将密钥库设置为C:\ ccc_acp.keystore。 ssl设置,然后我可以连接到我的目标https服务器。

然后我在C:\ Program Files \ Java \ jdk1.6.0_38 \ jre \ lib \ security>

中运行以下命令
keytool -importkeystore -srckeystore C:\ccc_acp.keystore -destkeystore .\cacerts

没有任何错误和keytool返回

  

导入命令已完成:已成功导入2个条目,0个条目失败或   取消

然后在soapUI 5.1.3中,我将密钥库设置为C:\ Program Files \ Java \ jdk1.6.0_38 \ jre \ lib \ security \ cacerts,但是当我连接到同一个https服务器时,它返回SSLHandshakeException:收到致命警报:handshake_failure。

为什么会发生这种情况?

事实上,我觉得有些人在这个名词上丢失了,当上述证书时,它是否意味着公钥?还是私钥?或两者兼而有之?

我可以在cacerts中导入私钥吗?

运行keytoool命令时

keytool -list -v -keystore .\cacerts

我看到一个带

的条目
  

条目类型:PrivateKeyEntry

这表明它是私钥?

的条目
  

条目类型:trustedCertEntry

这表明它是公钥? TrustedCert仅表示公钥?

抱歉,我是SSL新手。

1 个答案:

答案 0 :(得分:0)

  

在soapUI 5.1.3中,我在首选项>中将密钥库设置为C:\ ccc_acp.keystore。 ssl设置,然后我可以连接到我的目标https服务器。

请等一下。这是一个KeyStore,即包含私钥,还是只包含一个信任库,即只包含可信证书?或者换一种方式,服务器是否使用自签名证书?

  

然后我在C:\ Program Files \ Java \ jdk1.6.0_38 \ jre \ lib \ security>

中运行以下命令
keytool -importkeystore -srckeystore C:\ccc_acp.keystore -destkeystore .\cacerts
  

没有任何错误和keytool返回

Import command completed: 2 entries successfully imported, 0 entries failed or cancelled

好奇的事情,除非它是信任库而不是KeyStore,并且服务器使用的是自签名证书。你必须告诉我们哪个。

  

然后在soapUI 5.1.3中,我将密钥库设置为C:\ Program Files \ Java \ jdk1.6.0_38 \ jre \ lib \ security \ cacerts,但是当我连接到同一个https服务器时,它返回SSLHandshakeException:收到致命警报:handshake_failure。

您必须提供更多信息。整个堆栈跟踪,首先是设置-Djavax.net.debug=SSL,handshake

产生的输出
  

为什么会发生这种情况?

没有上述额外信息就无法说出来。

  

事实上,我觉得有些人在这个名词上丢失了,当上述证书时,它是否意味着公钥?还是私钥?或两者兼而有之?

都不是。证书是公钥的标识包装,可以是自签名的,也可以是其他人签名的。

  

我可以在cacerts中导入私钥吗?

你不想。 cacerts文件是信任,而不是KeyStore。见上文。

  

运行keytoool命令时

keytool -list -v -keystore .\cacerts
  

我看到一个带

的条目
Entry type: PrivateKeyEntry
  

这表明它是私钥?

当然可以。它还表明您开始使用KeyStore,而不是信任库,如上所述。

所以你到目前为止所做的一切都是完全无效的。

您需要将您开始使用的原始文件命名为KeyStore,将信任库保留为默认值,即JRE提供的cacerts文件,不会被您篡改,并再次尝试,不使用任何关键工具。

  

的条目
Entry type: trustedCertEntry
  

这表明它是公钥?

不,它表示它是受信任的证书。

  

TrustedCert仅表示公钥?

不,见上文。

  抱歉,我是SSL新手。

很新。我不知道你在读什么,或者你有什么废话,但这完全是错的。我建议你忘记这一切,然后再仔细阅读JSSE参考指南。