Your app shouldn’t suffer SSL’s problems
http://thoughtcrime.org/blog/authenticity-is-broken-in-ssl-but-your-app-ha/
android平台ssl单双向验证
http://blog.csdn.net/hfeng101/article/details/10163627
SSL与CA
http://blog.csdn.net/lzs109/article/details/6960461
为你的Android App实现自签名的 SSL 证书
http://www.open-open.com/lib/view/open1413071600531.html
android访问自签CA的Https SSL双向认证(没仔细看,有空看看)
http://www.ylzx8.cn/yidongkaifa/android/840356.html
AndroidPinning
https://github.com/muhaozhang/AndroidPinning
客户端认证服务端的两种方式
1.服务端离线保存一证书,然后用该证书给服务端的服务签名,因为,被信任的证书签过名的证书,也是可以被信赖的。然后再用该证书给客户端的证书签名,最后将客户端的证书转成bks格式的证书。(java默认是jks格式的证书)
2.如果客户端一定要使用ca证书,那么可以考虑使用android Pinning项目。来减少ca证书暴露的风险。这个ca证书,可以不是CA机构颁布的证书