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