客户端与服务器SSL双向认证(客户端:Android-服务端:vc)-含源码

客户端与服务器SSL双向认证(客户端Android-服务端vc)-含源码

(一)服务端
已经生成了client.p12、server.p12、ca.p12;主要实现客户端过程
(二)目录结构

(三)客户端注意
1.生成bks,时候需要去下载对应的jar包:http://www.bouncycastle.org/latest_releases.html
问题1 :keytool错误:java.lang.ClassNotFoundException:org.bouncycastle.jce.provider.BouncyCastleProvider
解决:刚开始下载bcprov-ext-jdk15on-148.jar里面没有对应的类
重新下载了bcprov-ext-jdk16-146.jar即可
参考: http://wenku.baidu.com/view/4bdb903d0912a216147929c6.html JavaBouncy Castle
问题2 :keytool错误:java.lang.Exception:所输入的不是一个X.509认证(如果出现,这个问题,供参考)
解决:刚开始执行
keytool -import -alias serverkey -file client.jks -keystore tclient.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
之后先将client.jks->client.crt
keytool -export -alias dev -keystore client.jks -file e:\client.crt
再执行
keytool -import -alias serverkey -file e:\client.crt -keystore tclient.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
即生成了tclient.bks
问题3:jks转bks出现illegal Key Size
下载 jce_policy-1_4_2.zip 后解压,放入$JAVA_HOME/lib/security/目录下替换原来的jar包
参考:http://www.cnblogs.com/siukun/archive/2011/12/13/2285854.html
问题4AndroidManifest.xml里面加上权限

问题5
其他准备好时候,执行通不过(纠结很久)
Client_sslSocket = (SSLSocket) sslContext.getSocketFactory()
.createSocket(SERVER_IP, SERVER_PORT);
导致Connect refuse绝绝连接:ip地址不正确,不能用127.0.0.1,通过ipconfig得到的ip使用即可
问题6
生成BKS格式问题,这个直接通过代码p12转bks(后续在再附上)

问题7
使用对应bks问题,client.p12->client.bks 、server.p12->server.bks

问题8
发送信息,堵塞问题

调用ready()得不到信息




========================================
源码下载 :http://download.csdn.net/detail/beihaizuopeng/5291168
包含服务端的执行文件Release.rar(执行SSLServeTest.exe即可)
端口为8443,ip:127.0.0.1
参考:
http://blog.sina.com.cn/s/blog_792cc4290100syyt.html
http://blog.csdn.net/hezhipin610039/article/details/7074000
http://blog.csdn.net/luckymelina/article/details/8564208
http://tech.ccidnet.com/art/294/20021024/28523_1.html
http://momoch1314.iteye.com/blog/540613
http://blog.csdn.net/xiaotanyu13/article/details/7928904


你可能感兴趣的:(android,应用开发)