android通过生成bks证书来访问https的实现

时间:2024-04-02 07:07:15

               网上很多都是12306那个证书的直接使用,但是http://blog.csdn.net/raptor/article/details/18898937 

这里看到好像没有那么简单,不是直接用crt或者cer证书,要生成bks证书,android要带上bks证书去访问

,后面到简书中看到:

http://www.jianshu.com/p/9b400e863ce3 生成BKS如下:

到这里下载了http://www.bouncycastle.org/latest_releases.html 下载JDK1.4对应的那个jar包

android通过生成bks证书来访问https的实现

放到C:\Program Files\Java\jdk1.7.0_17\jre\lib\ext目录,也就是放到JDK目录/jre\lib\ext 

下面,下载JDK1.4对应版本jar的放到JDK目录/jre\lib\ext 

打开运行cmd用cd进入到存放jar文件的目录下,命令行:

keytool -importcert -trustcacerts -keystore e:\key.bks -file e:\server.crt -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
按照提示重复输入两次**库口令,最后wenni是否信任此证书直接按y回车就可以了,

然后就成功将E:\目录下的XXX.crt转成ZZZ.bks证书,就可以去对应目录找bks证书了。

 直接用OkHttpUtils访问框架

android通过生成bks证书来访问https的实现

调试之后发现是

java.lang.IllegalArgumentException: Host name may not be null, while firing a get request

原来是自己的地址URL填写错误。这就尴尬了


此处介绍的是:单向的SSL加密TCP通信,双向验证流程可查看下面:http://www.cnblogs.com/UnGeek/p/6047843.html。