【问题标题】:KeyStore error on java server: BKS not foundjava 服务器上的 KeyStore 错误:找不到 BKS
【发布时间】:2012-07-27 10:11:05
【问题描述】:

我在这一行得到一个错误:

final KeyStore keyStore = KeyStore.getInstance("BKS");

我得到的错误是:

java.security.KeyStoreException: BKS not found
    at java.security.KeyStore.getInstance(Unknown Source)
    at AppListen.<init>(AppListen.java:84)

我将 bcprov-jdk16-146.jar 添加到“引用库”中,但仍然没有运气。

我的整体程序允许将安卓手机用作使用 SSL 套接字连接的计算机的鼠标和键盘。 android 应用程序有相同的行,没有错误。

我做错了什么?


编辑:

也许这对大多数人来说是常识,但它不适合我,所以对于像我这样的人来说,这就是我所做的。

我使用 BKS 的原因是因为这是 android 允许的唯一格式,但我不知道您只在 android 端需要它,您可以在服务器上使用另一种格式,然后复制密钥和将其转换为 BKS 以在 android 上使用,无需 BouncyCastle。

我为服务器使用了 JKS 密钥,然后使用名为 portecle 的程序将该密钥的副本转换为 BKS 以在 android 上使用。

【问题讨论】:

    标签: java ssl keystore jsse


    【解决方案1】:

    此错误表明 keytool 尝试实例化 BKS 密钥库,但没有加密服务提供程序 (CSP) 能够提供这样的实现。 BKS keystore 类型是由BouncyCastle CSP实现的类型
    因此,您必须使用 Java 安装 BouncyCastle 提供程序。 Installing Providers
    并查看this also.

    【讨论】:

    • 谢谢!.. 在阅读了您提供的链接后,我设法让服务器端正常工作.. 现在我必须弄清楚为什么我的客户端在握手时失败了,但这对另一个来说是个问题天。
    【解决方案2】:

    在项目中包含BouncyCastle库并在代码中添加提供者

    Security.addProvider(new BouncyCastleProvider());
    KeyStore keyStore = KeyStore.getInstance("BKS");
    

    【讨论】:

      猜你喜欢
      • 2013-05-22
      • 1970-01-01
      • 2017-03-07
      • 2017-08-09
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多