我想为ssl连接使用自签名签名。我正在关注this帖子。
我的问题:创建密钥库后,我的完整性检查失败。
Keytool-Error: java.io.IOException: KeyStore integrity check failed.
我还在寻找,但也许有人可以节省我一些时间。
答案 0 :(得分:30)
确保使用正确的密码打开密钥库。我遇到了这个错误,结果我仍在使用trusted.load()
答案 1 :(得分:13)
我遇到了同样的问题,我试图打开我在本地保存的KeyStore
文件,并想到了两个原因:
KeyStore
并使用其他密码加载。KeyStore
文件因为标记完整性检查而受损。我建议您尝试使用相同的密码保存并加载另一个文件(已修复),看它是否会正常加载。
答案 2 :(得分:2)
我找到了另一个可以引发此消息的角落案例。
我导出了一个带有openssl
的PKCS12密钥库,然后尝试将其导入到keytool
的现有密钥库中。我收到了“完整性检查失败”#39;尽管在列出PKCS12密钥库的内容时密码正常,但此步骤出错。
问题原来是因为我使用的密码长度恰好是50个字符。虽然这被openssl
接受,但我知道这是所用缓冲区的最大大小,并且密码的最后一个字符会被字符串'结尾覆盖。字符。
再次使用仅49个字符的密码导出PKCS12密钥库解决了我的问题。
答案 3 :(得分:1)
确保使用FileOutputStream.close()
正确关闭密钥库文件,否则会将其标记为丢失完整性