使用BouncyCastleProvider的KeyStore:KeyStore完整性检查失败

时间:2012-10-29 16:21:38

标签: java ssl bouncycastle keystore

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

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

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

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

4 个答案:

答案 0 :(得分:30)

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

中示例代码中的密码

答案 1 :(得分:13)

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

  • 您正在存储KeyStore并使用其他密码加载。
  • 您的KeyStore文件因为标记完整性检查而受损。

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

答案 2 :(得分:2)

我找到了另一个可以引发此消息的角落案例。

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

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

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

答案 3 :(得分:1)

确保使用FileOutputStream.close()正确关闭密钥库文件,否则会将其标记为丢失完整性