`
dyg001
  • 浏览: 28032 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Android 访问 Tomcat SSL双向验证服务器。

阅读更多
收藏
项目需要,在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

view plaincopy to clipboardprint?
01.<Connector   
02.    className="org.apache.catalina.connector.http.HttpConnector" 
03.    protocol="org.apache.coyote.http11.Http11NioProtocol"        
04.           port="8443" minSpareThreads="5" maxSpareThreads="75"        
05.           enableLookups="true" disableUploadTimeout="true"          
06.           acceptCount="100"  maxThreads="200"        
07.           scheme="https" secure="true" SSLEnabled="true"        
08.           clientAuth="true" sslProtocol="TLS"        
09.           keystoreFile="C:/OpenSSL/server/server_keystore"       
10.           keystorePass="66666"/>  
<Connector
className="org.apache.catalina.connector.http.HttpConnector"
protocol="org.apache.coyote.http11.Http11NioProtocol"     
           port="8443" minSpareThreads="5" maxSpareThreads="75"     
           enableLookups="true" disableUploadTimeout="true"       
           acceptCount="100"  maxThreads="200"     
           scheme="https" secure="true" SSLEnabled="true"     
           clientAuth="true" sslProtocol="TLS"     
           keystoreFile="C:/OpenSSL/server/server_keystore"    
           keystorePass="66666"/> 

  keystorePass 是自己server_keystore的密码

  单向验证把clientAuth="true" 修改为false

4.编写Android的SSL验证程序,但只能做到单向验证服务器的证书。参看下面的链接,其还有源码

   Android OpenSSL分析及实例 - zhenyongyuan123的专栏

5.编写Java版本的Client/Server程序验证SSL的双向验证。

   java实现 SSL双向认证 

6.为了了解SSL的握手过程,测试用OpenSSL命令行直接验证Tomcat的SSL双向验证过程。

  用openssl连接TomCat SSL双向验证的命令行。

view plaincopy to clipboardprint?
01.openssl s_client -connect localhost:8443 -cert client\client-cert.pem -key client\client-key.pem -CAfile ca\ca-cert.pem -state 
  openssl s_client -connect localhost:8443 -cert client\client-cert.pem -key client\client-key.pem -CAfile ca\ca-cert.pem -state

7.通过上面的过程,发现了步骤4的问题所在,解决了Android访问TomCat的双向SSL验证的WEB服务器。

8.最有一步,直接用Android 的WebView访问Tomcat的双向SSL服务器,正在研究中... 可能需要修改WebView的源码,研究完成单独书写文档表述实现方法。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/win2k3net/archive/2011/01/26/6165690.aspx
分享到:
评论

相关推荐

    AndroidHttpClient访问Tomcat双向SSL验证服务器.pdf

    ### AndroidHttpClient访问Tomcat双向SSL验证服务器 #### 环境与背景介绍 本文主要讨论如何使用`AndroidHttpClient`访问`Tomcat`双向SSL验证服务器的相关技术和实施步骤。本项目的目标是在`Android WebView`上成功...

    tomcat android 双向ssl通信

    ##### 三、Tomcat的Android版SSL双向配置步骤 1. **生成密钥**:与PC版相似,但这里特别提到了客户端证书是BKS格式的。 2. **证书交换**:与PC版类似,但包含将证书导入到安卓设备上,并需要将文件分发到客户端。 ...

    Android TLS1.2双向认证demo

    总结来说,实现Android与PC之间的TLS1.2双向认证涉及证书的生成、服务器和客户端的配置,以及安全连接的建立。通过这一系列步骤,我们可以提高应用的安全性,保护用户数据,防止未经授权的访问。在实际开发中,还...

    android https双向通信验证调研报告

    SSL通过加密传输数据和验证服务器及客户端的身份,确保了数据的机密性和完整性。 **1.3 SSL工作原理** SSL协议包含握手协议、密钥交换协议、密码规格协议和警报协议。在握手过程中,客户端和服务器互相交换证书,...

    tomcat配置https双向认证

    配置 Tomcat 双向认证需要生成服务器端证书和客户端证书,并将客户端证书添加到服务器的信任认证中。下面是配置步骤: 1. 生成服务器端证书 使用 keytool 工具生成服务器端证书: `keytool -genkey -keyalg RSA -...

    ssl+android

    ### SSL与Android应用开发详解 #### 一、SSL与HTTPS基础概述 SSL(Secure Sockets Layer)即安全套接层协议,是一种用于保障互联网数据传输安全的技术标准。它通过加密技术确保数据包在公共网络中的安全传输。在...

    AndroidHttps服务器端和客户端简单实例

    对于双向验证(也称为mutual SSL),还需要配置客户端信任的服务器证书。 ### 5. Android客户端实现 #### (1) 添加网络权限 在AndroidManifest.xml中,添加`INTERNET`和`ACCESS_NETWORK_STATE`权限,以允许网络...

    java-platform:与 TomCat Websockets 或本机客户端一起使用的 Java 平台

    同时,考虑使用身份验证和授权机制来控制访问。 - **性能优化**:监控和调整WebSocket连接的数量,避免过多连接导致服务器压力过大。合理使用线程池来处理并发连接,以及优化消息处理效率。 总结,Java平台与...

    RC&B聊天室 v1.0.zip

    服务器端可能使用如Node.js、Python的Tornado或Java的Tomcat等技术栈。客户端可能使用JavaScript(配合React或Vue框架)、Swift(iOS)或Java(Android)进行开发。 此外,安全性是聊天室软件的重要方面。RC&B聊天...

    Java音视频即时通讯源代码

    这通常涉及到加密算法如SSL/TLS,以及JWT(JSON Web Tokens)等身份验证方式。 8. **服务器架构设计**:在大规模的即时通讯系统中,服务器架构的设计至关重要。可能涉及负载均衡、分布式数据库、消息队列等技术,以...

    ChatSoftware:聊天软件 - 测试版

    Java提供了多种框架和技术用于开发服务器端应用,如Spring Boot、Servlet容器(如Tomcat)和WebSocket。在ChatSoftware的描述中提到了“/me/iancostello/”,这可能是服务器端代码的存放目录,暗示了Ian Costello...

Global site tag (gtag.js) - Google Analytics