在做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

更多相关文章

  1. Android系列教程:TextView小组件的使用--附带超链接和跑马灯效果
  2. Android(安卓)初始化NavigationView的headerLayout中的TextView
  3. Caused by: java.lang.IllegalStateException: You need to use
  4. Android(安卓)自定义缩短Toast显示时间
  5. 【学习Android遇到的错误】Unable to resolve target 'android-9
  6. Android(安卓)Device Monitor 报 open failed: Permission denie
  7. Libcurl库移植指南(下)--编译支持https的libcurl库
  8. MobSF安装使用及过程中遇到的错误
  9. Android(安卓)- Unparsed aapt error(s)错误的处理方法

随机推荐

  1. android.util.XML介绍
  2. TextView总是显示跑马灯效果
  3. Android中基于Socket的网络通信
  4. 获取android手机内部存储空间和外…
  5. Android 开机震动的调用位置以及打开关闭
  6. Android事件触发EditText焦点和自动弹出
  7. Android移动应用基础学习——第四章数据
  8. android手动设置布局
  9. Android XML小工具
  10. android:打开系统联系人界面并获取数据