利用Tomcat+Openssl在Android环境下完成CA签名的双向认证技术指导书 下载本文

内容发布更新时间 : 2024/5/16 4:28:11星期一 下面是文章的全部内容请认真阅读。

利用Tomcat+Openssl在Android环境下完成

CA签名的双向认证

技术指导书

利用tomcat在Android环境下单双向认证技术指导书

目录

1

配置环境 ................................................................................................................................... 3 1.1 Tomcat简介 .................................................................................................................. 3 1.2 SSL(Server Socket Layer)简介 ....................................................................................... 3 1.3 OpenSSL简介 ............................................................................................................... 3 1.4 所需软件包 ................................................................................................................... 4

1.4.1 Tomcat 6.0 ......................................................................................................... 4 1.4.2 给JDK加上BouncyCaslet库 ........................................................................... 4 1.4.3 Keytool命令详解.............................................................................................. 5 1.5 参考资料 ....................................................................................................................... 5 建立自己的CA: ..................................................................................................................... 5 2.1 初始化设置 ................................................................................................................... 5 2.2 构建根证书 ................................................................................................................... 6

2.2.1 生成根证书私钥 ............................................................................................... 6 2.2.2 生成根证书请求 ............................................................................................... 6 2.2.3 签发根证书(自签名方式) ........................................................................... 6 2.2.4 根证书转换 ....................................................................................................... 6 2.2.5 导出CA的公钥证书 ........................................................................................ 6 2.2.6 查看证书 ........................................................................................................... 6 为服务器生成证书 ................................................................................................................... 7 3.1 生成服务器私钥 ........................................................................................................... 7 3.2 生成服务器证书请求 ................................................................................................... 7 3.3 签发服务器证书 ........................................................................................................... 7 3.4 服务器证书转换 ........................................................................................................... 7 3.5 查看证书 ....................................................................................................................... 7 为Android客户端生成证书 .................................................................................................... 8 4.1 生成客户私钥 ............................................................................................................... 8 4.2 生成客户证书请求 ....................................................................................................... 8 4.3 签发客户证书 ............................................................................................................... 8 4.4 客户证书转换 ............................................................................................................... 8 4.5 查看证书 ....................................................................................................................... 8 双向认证配置: ....................................................................................................................... 9 5.1 Android客户端需要使用的文件 ................................................................................. 9 5.2 服务端需要使用的文件 ............................................................................................... 9 5.3 配置tomcat 服务器 .................................................................................................... 9 5.4 验证 ............................................................................................................................... 9

5.4.1 启动tomcat ...................................................................................................... 9 5.4.2 Android中验证 ................................................................................................. 9 5.4.3 利用PhoneGap插件 ...................................................................................... 11 经验总结 ................................................................................................................................. 12

2

3

4

5

6

第2页 总12页

利用tomcat在Android环境下单双向认证技术指导书

1 配置环境

1.1 Tomcat简介

Tomcat是Apache Jakarta的子项目之一,作为一个优秀的开源web应用服务器,全面支持jsp1.2以及servlet2.3规范。因其技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的web应用服务器。

1.2 SSL(Server Socket Layer)简介

在网络上信息在源-宿的传递过程中会经过其它的计算机。一般情况下,中间的计算机不会监听路过的信息。但在使用网上银行或者进行信用卡交易的时候有可能被监视,从而导致个人隐私的泄露。由于Internet和Intranet体系结构的原因,总有某些人能够读取并替换用户发出的信息。随着网上支付的不断发展,人们对信息安全的要求越来越高。因此Netscape公司提出了SSL协议,旨在达到在开放网络(Internet)上安全保密地传输信息的目的,这种协议在WEB上获得了广泛的应用。 之后IETF(www.ietf.org)对SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从技术上讲,TLS1.0与SSL3.0的差别非常微小。

1.3 OpenSSL简介

众多的密码算法、公钥基础设施标准以及SSL协议,或许这些有趣的功能会让你产生实现所有这些算法和标准的想法。果真如此,在对你表示敬佩的同时,还是忍不住提醒你:这是一个令人望而生畏的过程。这个工作不再是简单的读懂几本密码学专著和协议文档那么简单,而是要理解所有这些算法、标准和协议文档的每一个细节,并用你可能很熟悉的C语言字符一个一个去实现这些定义和过程。我们不知道你将需要多少时间来完成这项有趣而可怕的工作,但肯定不是一年两年的问题。 Eric A. Young和Tim J. Hudson,自1995年开始编写后来具有巨大影响的OpenSSL软件包,更令我们高兴的是,这是一个没有太多限制的开放源代码的软件包,这使得我们可以利用这个软件包做很多事情。1998年,OpenSSL项目组接管了OpenSSL的开发工作,并推出了OpenSSL的0.9.1版,到目前为止,OpenSSL的算法已经非常完善,对SSL2.0、SSL3.0以及TLS1.0都支持。

OpenSSL采用C语言作为开发语言,这使得OpenSSL具有优秀的跨平台性能,这对于广大技术人员来说是一件非常美妙的事情,可以在不同的平台使用同样熟悉的东西。OpenSSL支持Linux、Windows、BSD、Mac、VMS等平台,这使得OpenSSL具有广泛的适用性。不过,对于目前新成长起来的C++程序员,可能对于C语言的代码不是很习惯,但习惯C语言总比使用C++重新写一个跟OpenSSL相同功能的软件包轻松不少。

OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。

第3页 总12页