文档介绍:如何配置Tomcat以支持SSL
(CFCA)
名词解释:
1 ssl(Server Socket Layer):
在网络上信息在源-宿的传递过程中会经过其它的计算机。一般情况下,中间的计算机不会监听路过的信息。但在使用网上银行或者进行信用卡交易的时候有可能被监视,从而导致个人隐私的泄露。体系结构的原因,总有某些人能够读取并替换用户发出的信息。随着网上支付的不断发展,人们对信息安全的要求越来越高。scape公司提出了SSL协议,旨在达到在开放网络()上安全保密地传输信息的目的,这种协议在WEB上获得了广泛的应用。之后IETF(L作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从技术上讲,。
SSL工作原理:
SSL协议使用不对称加密技术实现会话双方之间信息的安全传递。可以实现信息传递的保密性、完整性,并且会话双方能鉴别对方身份。不同于常用的http协议,我们在与网站建立SSL安全连接时使用https协议,即采用https://ip:port/的方式来访问。
当我们与一个网站建立https连接时,我们的浏览器与Web Server之间要经过一个握手的过程来完成身份鉴定与密钥交换,从而建立安全连接。具体过程如下:
、加密设置参数、与session有关的数据以及其它一些必要信息发送到服务器。
、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器,同时发给浏览器的还有服务器的证书。如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。
,如果检查失败,提示不能建立SSL连接。如果成功,那么继续。
-master secret,并将其用服务器公钥加密后发送给服务器。
,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。
,则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret。
secret生成本次会话的会话密钥(对称密钥)。在双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速度。
。并通知服务器客户端已经完成本次SSL握手。
。并通知客户端服务器已经完成本次SSL握手。
,会话已经建立。双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。
2 JSSE: Java SSL extension
用来支持Java程序的SSL;
3 Keystore
Java把各种钥匙对key pair、验证certification等都可以放到一个文件中,并且一个 文件可以放多个钥匙对和验证信息,并用别名alias来区分不同的key pair/certification。 存放这些信息的文件叫做keystore;
4 Keytool
JDK自带的用于管理keystore的工具
安装准备:
1.       (java -version); 以上版本可以不必以下准备。
2.       下载JSSE,URL: http://java./products/jsse/index- (注意,,不需要再下载),一般来说都只能download全球版本(还有个版本是美国/加拿大版本,加密位数没有限制);
3.       安装JSSE,主要是把JSSE包内的lib/*.jar拷贝到JAVA_HOME/jre/lib/ext/下,并且加入到CLASSPATH中(这一步很重要);
4.       编辑JAVA_HOME/jre/lib/security/,主要是添加:
= (一般系统本来就有这一行)
... (注意数字2应该是你的系统原有的最大