项目需要,在Android上实施SSL的双向验证。
准备环境:
Windows 2003 EE;
OpenSSL;
Tomcat 7;
简单的过程:
1.用OpenSSL和keytools做CA,Client,Server的证书、私钥。
2.搭建Tomcat的双向验证的Web服务器。
3.用IE验证SSL的双向验证的有效性。
上面的三步参见下面的文档: tomcat下https ssl 双向认证
唯一的问题是:Tomcat7的配置不同。server.xml
keystorePass 是自己server_keystore的密码
单向验证把clientAuth="true" 修改为false
4.编写Android的SSL验证程序,但只能做到单向验证服务器的证书。参看下面的链接,其还有源码
Android OpenSSL分析及实例 - zhenyongyuan123的专栏
5.编写Java版本的Client/Server程序验证SSL的双向验证。
6.为了了解SSL的握手过程,测试用OpenSSL命令行直接验证Tomcat的SSL双向验证过程。
用openssl连接TomCat SSL双向验证的命令行。
7.通过上面的过程,发现了步骤4的问题所在,解决了Android访问TomCat的双向SSL验证的WEB服务器。
8.最有一步,直接用Android 的WebView访问Tomcat的双向SSL服务器,正在研究中... 可能需要修改WebView的源码,研究完成单独书写文档表述实现方法。
本文档详细介绍了如何在Android应用中实现访问配置了SSL双向验证的Tomcat服务器。首先,通过OpenSSL和keytools创建CA、客户端和服务器的证书。接着,配置Tomcat 7进行双向验证,并在Windows 2003 EE环境下测试SSL连接。然后,展示了Android端SSL验证的代码实现,目前仅支持单向验证。最后,计划研究如何让Android的WebView支持双向SSL验证。
3262

被折叠的 条评论
为什么被折叠?



