Android HttpClient与Tomcat双向SSL验证实现
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
"该资源主要涉及在Android平台上使用AndroidHttpClient组件访问配置了双向SSL验证的Tomcat服务器。这个过程涉及到SSL安全套接层协议、证书的创建与管理、Tomcat服务器的配置以及Android客户端的SSL验证程序开发。" 在Android应用开发中,有时需要确保与服务器之间的通信具有高安全性,这通常通过实施SSL(Secure Socket Layer)或其更新版本TLS(Transport Layer Security)来实现。双向SSL验证,也称为mutual SSL或client authentication,要求不仅服务器验证客户端的身份,客户端也要验证服务器的身份,以提供更高级别的安全保护。 1. **证书创建与管理**: - 使用OpenSSL工具生成自签名的根证书(Certificate Authority, CA),然后基于此CA生成服务器(Server)和客户端(Client)的证书及私钥。这些证书用于在服务器和客户端之间建立安全连接。 - 在Tomcat服务器端,将服务器证书导入到Keystore中,Keystore是存储证书和密钥的文件。在上述示例中,`keystoreFile`设置为"C:/OpenSSL/server/server_keystore",`keystorePass`是对应的密码。 2. **Tomcat配置**: - 在Tomcat的`server.xml`配置文件中,需要对HTTPS Connector进行相应设置。配置项如`<Connector>`标签内的各项属性,包括启用SSL(`SSLEnabled="true"`),设置端口(`port="8443"`),启用双向认证(`clientAuth="true"`),以及指定Keystore文件和密码等。 3. **单向验证与双向验证**: - 如果只需要服务器验证客户端的身份,可以将`clientAuth`属性设置为`false`,即实现单向SSL验证。 - 双向验证则需要`clientAuth`设置为`true`,这样服务器在建立连接时会要求客户端提供有效的证书。 4. **Android客户端的SSL验证**: - AndroidHttpClient在访问SSL服务器时,默认只会进行服务器证书的验证。若要实现双向验证,需要自定义TrustManager和X509TrustManager,以便客户端能够验证服务器的证书,并且服务器能验证客户端的证书。 - 可参考AndroidOpenSSL分析及实例的相关资料,以编写自定义的SSLContext和SocketFactory,实现客户端的SSL双向验证。 5. **Java SSL测试**: - 开发Java版的客户端和服务器程序,进行SSL双向验证的测试,这有助于理解SSL握手过程和验证逻辑。 6. **SSL握手过程**: - SSL/TLS握手过程包括客户端发送Hello消息,服务器响应Hello消息,交换证书,协商加密算法,交换预主密钥,最终建立安全连接。通过OpenSSL命令行工具,可以直接进行SSL连接测试,验证Tomcat服务器的双向SSL配置是否正确。 这个资源提供了从证书生成到服务器配置,再到Android客户端实现SSL双向验证的完整流程,对理解和实践Android与服务器间的安全通信具有很高的参考价值。开发者在实际操作中应根据自己的服务器环境和应用需求,调整相关参数和代码。
![预览](https://dl-preview.csdnimg.cn/86106009/0001-e6c1c7547244764d21d08f24f2d39d47_preview.png)
下载后可阅读完整内容,剩余6页未读,立即下载
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 0
- 资源: 8万+
![](https://csdnimg.cn/release/wenkucmsfe/public/img/vip-rights-1.c8e153b4.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/vip-rights-2.8b825a4e.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/vip-rights-3.fc5e5fb6.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/vip-rights-4.320a6894.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/vip-rights-icon.fe0226a8.png)
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)