【问题标题】:BouncyCastle Provider JCE Authentication Security ExceptionBouncyCastle 提供者 JCE 身份验证安全异常
【发布时间】:2014-03-19 16:47:29
【问题描述】:

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

我的堆栈跟踪是:

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。 为什么浏览器上的小程序不能添加securityprovider?

谢谢, 问候, 威廉。

【问题讨论】:

    标签: java eclipse applet bouncycastle provider


    【解决方案1】:

    您可能无权这样做。

    1. 您使用的是哪个 java 版本?
    2. sign你的小程序有官方证书吗?
    3. 您是否在 manifest/jnlp 文件中设置了正确的 flags/attributes

    您可以尝试将系统属性中的 java 安全滑块降低到中等,以便能够运行它。如果您使用自签名证书,则可以将其添加到 java 信任库中

    更新:

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

    【讨论】:

    • 我正在使用 JRE7 版本,就像我说的,在 Eclipse 中它工作正常。不是带有官方证书,而是带有自签名的.. 其他罐子工作正常,但不是这个 bouncycastle 罐子。如何在清单/jnlp 中设置标志/属性?那些是哪些文件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多