15

我想为 ssl 连接使用自签名签名。我正在关注这个帖子。

我的问题:创建密钥库后,我的完整性检查失败。

Keytool-Error: java.io.IOException: KeyStore integrity check failed.

我仍在寻找,但也许有人可以为我节省一些时间。

4

4 回答 4

33

确保您使用正确的密码来打开密钥库。我遇到了这个错误,结果我仍在使用示例代码中的密码trusted.load()

于 2012-12-06T05:22:00.517 回答
13

我在尝试打开KeyStore本地保存的文件时遇到了同样的问题,我想到了两个原因:

  • 您正在存储KeyStore并使用不同的密码加载它。
  • 您的KeyStore文件已损坏,因此标记了完整性检查。

我建议您尝试使用相同的密码(固定)保存并加载另一个文件,看看它是否会正常加载。

于 2012-12-05T16:07:38.693 回答
4

我发现了另一个可以引发此消息的极端案例。

我导出了一个 PKCS12 密钥库,openssl然后尝试将其导入到现有的密钥库中keytool。尽管在列出 PKCS12 密钥库的内容时密码正确,但在此步骤中仍收到“完整性检查失败”错误。

问题原来是因为我使用的密码长度正好是 50 个字符。尽管这被 接受openssl,但我知道这是使用的缓冲区的最大大小,并且密码的最后一个字符会被“字符串结尾”字符覆盖。

使用只有 49 个字符的密码再次导出 PKCS12 密钥库解决了我的问题。

于 2018-03-06T11:30:34.337 回答
1

确保您的密钥库文件已正确关闭,FileOutputStream.close()否则将被标记为失去完整性

于 2017-02-20T12:36:40.410 回答