配置Tomcat 4使用SSL

时间:2010-01-21 08:22:55  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:作是采用J2EE技术开发供分销企业使用的供应链/销售链ERP。可以通过电子邮件 b-i-d@163.com 与作者联系。 ---------------------- 目前介绍配置Tomcat 4使用单向SSL认证(只验证服务器证书)的资料很多,过程也比较简单。但是由于配置其使用双向SSL认证(还需要验证客户端个人证书)除了需要CA对证书签名外,还要从CA获得个人证书。有关这一问题,目前结合具体web服务器来讲解如何操作的资料很...
  正文:

内容: 1.Tomcat简介 2.SSL(Server Socket Layer)简介 3.SSL工作原理 4.配置Tomcat 4.x 使用SSL 5.结论 赵 梁 (b-i-d@163.com) 2002 年 5 月 赵梁,1995年毕业于北京航空航天大学。对J2EE, J2ME以及CORBA, Web Service等技术比较感兴趣。目前的主要工作是采用J2EE技术开发供分销企业使用的供应链/销售链ERP。可以通过电子邮件 b-i-d@163.com 与作者联系。 ---------------------- 目前介绍配置Tomcat 4使用单向SSL认证(只验证服务器证书)的资料很多,过程也比较简单。但是由于配置其使用双向SSL认证(还需要验证客户端个人证书)除了需要CA对证书签名外,还要从CA获得个人证书。有关这一问题,目前结合具体web服务器来讲解如何操作的资料很少。作者通过摸索借助一些SSL工具在本地实现了简单的CA功能,并在此基础上配置成功了Tomcat的双向认证,希望能把其中的一些经验与大家共享。不过受本人水平所限,文中难免会有错误与不当之处,敬请大家谅解。 1.Tomcat简介 Tomcat是apache Jakarta的子项目之一,作为一个优秀的开源web应用服务器,全面支持jsp1.2以及servlet2.3规范。因其技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的web应用服务器。 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的差别非常微小。 3.SSL工作原理 SSL协议使用不对称加密技术实现会话双方之间信息的安全传递。可以实现信息传递的保密性、完整性,并且会话双方能鉴别对方身份。不同于常用的http协议,我们在与网站建立SSL安全连接时使用httphotoshop/ target=_blank class=infotextkey>ps协议,即采用https://ip:port/的方式来访问。当我们与一个网站建立https连接时,我们的浏览器与Web Server之间要经过一个握手的过程来完成身份鉴定与密钥交换,从而建立安全连接。具体过程如下: 用户浏览器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送到服务器。 服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器,同时发给浏览器的还有服务器的证书。如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。 客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,那么继续。客户端浏览器为本次会话生成pre-master secret,并将其用服务器公钥加密后发送给服务器。如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。 如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret。 客户端与服务器均使用此master secret生成本次会话的会话密钥(对称密钥)。在双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速度。 客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。并通知服务器客户端已经完成本次SSL握手。 服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。并通知客户端服务器已经完成本次SSL握手。 本次握手过程结束,会话已经建立。双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。 4.配置Tomcat 4.x 使用SSL 4.1 用到的软件包 Tomcat 4.0.2 用途:Web Server。 下载: http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.3/bin/ JSSE 1.0,2 用途:用来产生Tocmcat使用的秘钥对(keystore)。 下载: http://java.sun.com/products/jsse/ Openssl 0.9.9.6 用途:用来产生CA证书、签名并生成IE可导入的PKCS#12格式私钥。 下载: http://www.openssl.org/ 以上工具的安装过程可以参考自带的帮助,本文就不再详细描述了。 4.2 建立自己的CA 4.2.1 建立工作目录 mkdir ca 4.2.2 生成CA私钥以及自签名根证书 4.2.2.1 生成CA私钥 openssl genrsa -out ca/ca-key.pem 1024 4.2.2.2 生成待签名证书 openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem 4.2.2.3 用CA私钥进行自签名 openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 365 4.3 设置Tomcat 4.x 在本文中用符号"%JDK_HOME%"来表示JDK的安装位置,用符号"%TCAT_HOME%" 表示Tomcat的安装位置。 4.3.1建立工作目录 mkdir server 4.3.2 生成server端证书 4.3.2.1 生成KeyPair %JDK_HOME%/bin/keytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 1024 -keypass changeit -storepass changeit -dname "cn=localhost, ou=department, o=company, l=Beijing, st=Beijing, c=CN" -keystore server/server_keystore 4.3.2.2 生成待签名证书 %JDK_HOME%/bin/keytool -certreq -alias tomcat_server -sigalg MD5withRSA -file server/server.csr -keypass changeit -keystore server/server_keystore -storepass changeit 4.3.2.3 用CA私钥进行签名 openssl x509 -req -in server/server.csr -out server/server-cert.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -days 365 4.3.2.4 导入信任的CA根证书到JSSE的默认位置(%JDK_ROOT %/jre/security/cacerts) %JDK_HOME%/bin/keytool -import -v -trustcacerts -storepass changeit -alias my_ca_root -file ca/ca-cert.pem -keystore %JDK_HOME%/jre/lib/security/cacerts 4.3.2.5 把CA签名后的server端证书导入keystore %JDK_HOME%/bin/keytool -import -v -trustcacerts -storepass changeit -alias tomcat_server -file server/server-cert.pem -keystore server/server_keystore 4.3.2.6 查看server端证书 keytool -list -keystore %JDK_HOME%/jre/lib/security/cacerts keytool -list -keystore server/server_keystore 4.3.3 修改server.xml使Tomcat支持SSL 首先找到以下内容,去掉对其的注释。然后参照红色部分修改。如果配置Tomcat不验证客户身份,可以设置 clientAuth="false"。 "配置Tomcat 4使用SSL"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/JSP/12115.html


关键字:

关于《配置Tomcat 4使用SSL》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td