java.security.NoSuchProviderException: no such provider: BC 的问题解决

22 篇文章 1 订阅
19 篇文章 0 订阅

在做Android通过https访问tomcat时,需要做keystore证书,在使用命令:

 keytool -import -alias tomcat -file server.cer -keystore server_trust.keystore -storepass 123456 -storetype BKS -providername "BC"

时,遇到了下面这个错误:

java.security.NoSuchProviderException: no such provider: BC

上网搜了一下,说是要下载一个叫 bcprov-jdk15-135.jar 的包,放在JAVA_HOME/jre/lib/ext目录下,然后修改JAVA_HOME/jre/lib/security/java.security文件,在里面可以看到有几行是以“security.provider.”开头的,在它的最后序号之上加一行,如我的最后的序号是8,加入以下这行:

security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider

然后保存,一般来说,这样就可以解决了,但当我做完这一步后,天杀的还是不行,仍然报java.security.NoSuchProviderException: no such provider: BC这个错误,于是继续Google,网上很多人的解决方案都是这样,无意中看到一条说是要注意你的JAVA SDK的版本是否是你刚刚存放 bcprov-jdk15-135.jar包的那个SDK,我恍然大悟,马上用命令查看:

ls -l /usr/bin/java

果然,这里链接的是另一个SDK版本的路径,不是我刚刚存放 bcprov-jdk15-135.jar包的那个SDK,于是我将它rm掉,重做一个链接,用命令:

ln -s /opt/jdk/bin/java  /usr/bin/java (第一个路径参数是我存放 bcprov-jdk15-135.jar包的那个SDK)

做好之后,再试,还是报java.security.NoSuchProviderException: no such provider: BC错误,沮丧。。

重新看了一下生成keystore的命令,看到了,是keytool!!那个keytool的链接还没换过来,于是再做链接,并且将之前生成的证书删除掉,用新的keytool重新生成一遍

终于,终于....成功了!

我内牛满面 T - T

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值