JCE cannot authenticate the provider BC

解决JCE无法验证BC提供者的问题
在使用Oracle JDK时遇到'JCE cannot authenticate the provider BC'的错误,原因是JAR包需要特殊证书。解决方案包括修改`java.security`文件添加BouncyCastleProvider,将bcprov-jdk16-146.jar等文件放入lib/ext目录,或考虑使用OpenJDK以避开证书限制。另外,避免使用Eclipse的某些打包方式导致加密算法jar签名失效,可以选择将所有依赖打包进单个jar文件。
部署运行你感兴趣的模型镜像

报错原因:

  在使用oracle的JDK时,JAR包必须签署特殊的证书才能使用

解决方法

1. 找到 java.security 在jvm安装地方 /jdk安装目录/jre/lib/security

2. 添加 security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider
例如:

security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider

这9不一定非得填9,而是根据上一个security.provider序号往下加一。

3. 添加 bcprov-jdk16-146.jar, bcmail-jdk16.143 到 /jdk安装目录/jre/lib/ext (提供maven的地址)

随便添加一个版本或者几个版本,总有一个可以

还有几种没试过的解决思路,这个没解决可以试试下面两种

方法1.使用openJDK或者非oracle的JDK,这样就可以绕开证书的限制

方法2.JDK对类似bouncycastle的bcprov-jdk15on-159.jar包是有安全签名认证的,当我们如果进行生成jar的时候,如果选择类似eclipse的export runnable jar file 功能,如下红色勾选的选项,eclipse会解压缩依赖的包后一起打包成一个jar文件

 

以上生成jar的方式,会解压bcprov-jdk15on-159.jar,这类安全加密算法类似jar一旦有更改,包括解压,签名就会失效,不能通道jdk的验证,就会出现以上错误。

  针对以上的打包方式解决方法很简单,就是如下红色勾选的方式,将jar完成的打包进一个文件中,这样就没有问题了

 

生成的文件是这样的:

 

记得移动jar的时候,把**_lib文件带上放在同一个文件夹下面。

网上的兄弟很多各种改jdk安全配置文件,那样不好。。。

附送动态加入密码包见截图.就不需要添加类似:security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider如下

 

动态加入

Security.addProvider(org.bouncycastle.jce.provider.BouncyCastleProvider)
 

您可能感兴趣的与本文相关的镜像

Qwen-Image-Edit-2509

Qwen-Image-Edit-2509

图片编辑
Qwen

Qwen-Image-Edit-2509 是阿里巴巴通义千问团队于2025年9月发布的最新图像编辑AI模型,主要支持多图编辑,包括“人物+人物”、“人物+商品”等组合玩法

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值