【问题标题】:KeyStore with BouncyCastleProvider: KeyStore integrity check failed带有 BouncyCastleProvider 的 KeyStore:KeyStore 完整性检查失败
【发布时间】:2012-10-29 16:21:38
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java ssl bouncycastle keystore


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 你能告诉我它在 mac os 上的存储位置吗?
      • KeyStore,我什至不知道它会存储在安卓手机或其他地方
      • 您是在 Android 应用程序中生成它还是事先生成它?
      【解决方案3】:

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

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

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

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

      【讨论】:

      • 正是我遇到的问题。
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-20
        • 1970-01-01
        • 2018-08-16
        • 2020-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多