BouncyCastle提供程序JCE身份验证安全例外

时间:2014-03-19 16:47:29

标签: java eclipse applet bouncycastle provider

我是一个使用bouncycastle库的Java applet。 当我在Eclipse上运行应用程序时,一切正常,但是当我在带有标记的浏览器上使用applet时,当我添加安全性bouncycastleprovider时会抛出异常。

我的stackTrace是:

java.io.IOException: error constructing MAC: java.lang.SecurityException: JCE cannot authenticate the provider BC at org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad(Unknown Source) at java.security.KeyStore.load(Unknown Source)

我正在使用bcpkix-jdk15on-1.48.jar和bcprov-jdk15on-1.48.jar版本的bouncycastle。 为什么浏览器上的applet无法添加安全提供程序?

谢谢你, 问候, 威廉。

1 个答案:

答案 0 :(得分:0)

您可能没有权利这样做。

  1. 您使用的是哪个java版本?
  2. 您的applet是否sign带有官方证书?
  3. 您是否在manifest / jnlp文件中设置了正确的flags/attributes
  4. 您可以尝试将系统属性中的java安全性滑块减小到中等,以便能够运行它。如果您使用自签名证书,则可以将其添加到Java信任库

    <强>更新

    • 您使用的是哪个确切版本? (请写完如1.7.0_51的完整版本)
    • 正如已经指出的那样:如果你在eclipse中运行你的applet它会工作但如果你在webbrowser中运行它会(由于浏览器插件的安全限制)。如果要在Web浏览器中运行applet,则必须执行以下操作之一:
      • 使用官方证书或
      • 签名
      • 将java系统设置中的安全性滑块降低到中等
      • 将您的自签名证书添加到java信任库
    • 还有一件事:您需要确保使用相同证书对您的applet和所有外部库进行签名。我知道如果你下载它们已经签署了bouncycasle libs - 所以你必须在用你的证书签名之前删除这个签名信息