如何配置Tomcat以支持SSL
时间:2025-04-24
时间:2025-04-24
如何配置Tomcat以支持SSL
如何配置Tomcat以支持SSL
1、技术背景
SSL(Server Socket Layer)简介
在网络上信息在源-宿的传递过程中会经过其它的计算机。一般情况下,中间的计算机不会监听路过的信息。但在使用网上银行或者进行信用卡交易的时候有可能被监视,从而导致个人隐私的泄露。由于Internet和Intranet体系结构的原因,总有某些人能够读取并替换用户发出的信息。随着网上支付的不断发展,人们对信息安全的要求越来越高。因此Netscape公司提出了SSL协议,旨在达到在开放网络(Internet)上安全保密地传输信息的目的,这种协议在WEB上获得了广泛的应用。 之后IETF(http://www.77cn.com.cn)对SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从技术上讲,TLS1.0与SSL3.0的差别非常微小。 SSL工作原理
SSL协议使用不对称加密技术实现会话双方之间信息的安全传递。可以实现信息传递的保密性、完整性,并且会话双方能鉴别对方身份。不同于常用的http协议,我们在与网站建立SSL安全连接时使用https协议,即采用https://ip:port/的方式来访问。
当我们与一个网站建立https连接时,我们的浏览器与Web Server之间要经过一个握手的过程来完成身份鉴定与密钥交换,从而建立安全连接。具体过程如下:
1. 用户浏览器将其SSL版本号、加密设置参数、与session有关的数据以及其它一
些必要信息发送到服务器。
2. 服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必
要信息发送给浏览器,同时发给浏览器的还有服务器的证书。如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。
3. 客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,那
么继续。
4. 客户端浏览器为本次会话生成pre-master secret,并将其用服务器公钥加密后发
送给服务器。
5. 如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户
端证书一起发送给服务器。
6. 如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。如果不在信
任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret。 7. 客户端与服务器均使用此master secret生成本次会话的会话密钥(对称密钥)。在
双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速
如何配置Tomcat以支持SSL
度。
8. 客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。并通知服务器客
户端已经完成本次SSL握手。
9. 服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。并通知客户端服
务器已经完成本次SSL握手。
10. 本次握手过程结束,会话已经建立。双方使用同一个会话密钥分别对发送以及接受
的信息进行加、解密。
2、Java 环境配置
2.1 JSSE: Java SSL extension
用来支持Java程序的SSL。
2.2 Keystore
Java把密钥、证书等都放到一个文件中,并且一个文件可以放多个密钥对和证书信息,并用别名alias来区分不同的密钥和证书,存放这些信息的文件叫做keystore。
2.3 Keytool
JDK自带的用于管理keystore的工具,具有密钥生成、导入、导出,证书生成、导入、导出等强大的功能。
2.4 安装配置
确定已安装有JDK1.2以上版本(java -version);如果你的机器安装了jdk1.4 以上版本(集成了SSL、keystore和keytool),则可略过下面的步骤。
下载JSSE,URL: (注意,JDK1.4以
上版本已经集成JSSE了,不需要再下载),一般来说都只能download全球版本(还有个版本是美国/加拿大版本,加密位数没有限制);
安装JSSE,主要是把JSSE包内的lib/*.jar拷贝到JAVA_HOME/jre/lib/ext/下,并且
加入到CLASSPATH中 (这一步很重要);
编辑JAVA_HOME/jre/lib/security/java.security文件,主要是添加: security.provider.1=sun.security.provider.Sun
(一般系统本来就有这一行)
(注意数字2应该是你的系统
security.provider.2=http://www.77cn.com.cn.ssl.internal.ssl.Provider 确定你的系统有下面文件的其中一个: 1) JAVA_HOME/jre/lib/security/jssecacerts或者 2) JAVA_HOME/jre/lib/security/cacerts
原有的最大provider数再加一,不一定是2;但一般把它的优先级设为2,而改其它的)
3、申请服务器证书过程
申请服务器证书过程如下:
建立保存证书相关信息的目录
如:e:\myServerCert。
在dos窗口中敲入以下命令生成keystore文件,如图一所示
%java_home%\bin\keytool -genkey -alias tomcatTest -keyalg RSA -size 2048 -keystore e:\myServerCert\serverKey.keystore
如何配置Tomcat以支持SSL
说明:
将提示您输入保护keystore的密码,至少为六位。 注意问题:姓氏可输入域名,中国的国家代码是:CN -lias tomcatTest 中的tomcatTest 为别名 可以任意输入
请到e:\myServerCert 目录下确认是否生成文件 serverKey.keystore 没有-size 2048的指定,默认产生的是2048位的密钥对
图一
产生certificate signature request …… 此处隐藏:6982字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:技术员年终工作总结范文
下一篇:电子商务概论第一章辅导