财商书苑
全民财商训练提升,认真负责我们的每句话

安卓HTTPS(SSL证书)双向认证

安卓HTTPS(SSL证书)双向认证
相关软件:
openssl, keytool 工具

笔者编写的证书生成脚本:
cert_ca.sh (自己生成ca进行签署)
cert_no_ca.sh (不使用ca)

操作步骤:
0. 修改脚本前几行的密码,以及网站地址
注意一定要和自己的网站匹配,否则安卓下出现hostname not valid的异常
1. 运行脚本生成相关证书
2. 去Portecle下载Download portecle-1.9.zip (3.4 MB)。把client.jks 转换成 bks 安卓下可以用的格式。

使用方法如下


如果秘钥长度2048,那么根据美国软件出口策略, 使用portecle转换jks到bks格式时,
会出现InvalidKeyException: Illegal key size or default parameters异常
注意java版本(查看java7的解决方案,其他自行搜索 关键字)
阅读上述链接的README.txt文件,切换到\jre\lib\security目录下,对应覆盖(备份原文件)local_policy.jar和US_export_policy.jar两个文件。

3. 把服务端的server-cert.cer 和生成的 client.bks 拷贝到安卓assets目录下

最终 用到的证书有5个:

Nginx 服务器用到的证书:
server-key.key 和 server-cert.cer 和 ca-cert.cer(如果使用ca认证的话,此处为ca-cert.cer, 没有自己的CA的话,为client-cert.cer)
浏览器用到的:
client.p12 (双向认证用)双击导入,重启浏览器生效。
安卓客户端用到的:
server-cert.cer 和 client.bks (双向认证用到)

安卓端代码(下载HttpsUtils类

 
参考链接:
生成bks文件forAndroid
https://docs.wso2.com/display/EMM200/Generating+a+BKS+File+for+Android
openssl生成证书文件
http://blog.csdn.net/kunoy/article/details/8239653
InvalidKeyException
http://www.wxdl.cn/java/security-invalidkey-exception.html

portecle 转换bks

http://blog.csdn.net/lmj623565791/article/details/48129405

 

赞(0)
未经允许不得转载:财商书苑-全民财商训练提升 » 安卓HTTPS(SSL证书)双向认证

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址