tomcat6.0实现https连接方式

一、首先我们了解一下什么是https

       https(Sercure Hypertext Transfer Protocol)=安全超文本传输协议

二、https的特点是
     1.数据加密(SSL) = Secure Socket Layer

     2.身份认证

       当你的项目需要考虑安全性的时候,部分模块可以用到https。当然这些都得到CA注册,需要收费。

       这里我想给大家介绍个不收费的。用JDK的keytool工具生成证书、然后在Tomcat下配置server.xml,就可以实现https,对传输的双向数据进行加密和解密。

三、在tomcat下使用SSL主要有两大步骤
       1、生成证书

      在命令行下执行

      %Java_home%/bin/keytool -genkey -alias tomcat -keyalg RSA

      在此命令中,keytool是JDK自带的产生证书的工具。把RSA运算法则作为主要安全运算法则,这保证了  

      与其它服务器和组件的兼容性。这个命令会在用户的home directory产生一个叫做" .keystore " 的新文

      件。在执行后,你首先被要求出示keystore密码。Tomcat使用的默认密码是" changeit "(全都是小写字           母),如果你愿意,你可以指定你自己的密码。你还需要在server.xml配置文件里指定自己的密码,这在以后会有描述。如果一切顺利,你现在就拥有了一个可以被你的服务器使用的有认证书的keystore文件。

       2、配置tomcat

       第二个大步骤是把secure socket配置在$CATALINA_HOME/conf/server.xml文件里。                                      $CATALINA_HOME代表安装Tomcat的目录。一个例子是SSL连接器的元素被包括在和Tomcat一起安装的缺省server.xml文件里。它看起来象是这样:

    <!--
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->

    Connector元素本身,其默认形式是被注释掉的(commented out),所以需要把它周围的注释标志删除掉。然后,可以根据需要客户化(自己设置)特定的属性。一般需要增加一下keystoreFile和keystorePass两个属性,指定你存放证书的路径(如:keystoreFile="D:/shu/.keystore")和刚才设置的密码(如:                       keystorePass="123456")。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="C:/Users/liangjf/.keystore" keystorePass="123456"/>

    在完成这些配置更改后,必须象重新启动Tomcat,然后你就可以通过SSL访问Tomcat支持的任何web应用程序。只不过指令需要像下面这样:https://localhost:8443

猜你喜欢

转载自liangjf85-163-com.iteye.com/blog/2094422