Tomcat 5.5 配置SSL
作者:XianBin
文章摘要:网上有很多介绍的例子,但是总是感觉有的要么是针对Tomcat 4.x的,要么Tomcat 5.x的配置不全,有的还跑不同,所以本人综合自己的经验,提供一份自己亲自配置并成功运行的例子,希望能够帮助那些对Tomcat的SSL配置不熟悉的朋友,让大家更快的学会SSL的配置。
1. 生成密钥
1)在JDK的%JAVA_HOME%/bin(比如:C:/j2sdk 1.4.2 /bin)目录下创建一个mykey.bat,该处理文件的内容如下:
keytool -genkey -alias tomcat -dname "CN=XianBin, OU=RAD, O=Company, L= GuangZhou , ST= GuangDong , C=CN" -keyalg RSA -keysize 1024 -validity 365 -keypass xianbin -storepass xianbin -keystore tomcat.keystore |
[提示]Keytool工具的说明文档请参考:
http://www.iplab.cs.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/tooldocs/solaris/keytool.html
2)执行该批处理文件后将获得一个名为tomcat.keystore的密钥库文件,将该文件复制到Tomcat的conf目录下(比如:D:/Java Program/apache-tomcat- 5.5.23 /conf)。
2. 配置Tomcat的server.xml
server.xml文件位于Tomcat的conf目录下,打开该文件,找到如下注释:
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
首先找到以下内容,去掉对其的注释。然后参照红色部分修改。如果配置Tomcat不验证客户身份,可以设置clientAuth="false"。
<!-- Define a SSL HTTP/1.1 Connector on port 8443 --> <Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="conf/tomcat.keystore" keystorePass="xianbin" /> |
通过以上配置,Tomcat中已经完成SSL的启用,但是如果希望对某个站点应用SSL,那么还需要接着后面的配置。
3. 配置Web站点的Web.xml
在TOMCAT_HOME/webapps/jsp-examples/WEB-INF目录中找到web.xml文件,编辑该文件,在<web-app></web-app>节点中找到<security-constraint>,下面给出了<security-constraint>的配置:
<security-constraint>
<description> Constrain the user data transport for the whole application </description> <transport-guarantee> CONFIDENTIAL </transport-guarantee>
<display-name>Example Security Constraint</display-name> <web-resource-collection> <web-resource-name>Protected Area</web-resource-name> <!-- Define the context-relative URL(s) to be protected --> <url-pattern>/security/protected/*</url-pattern> <!-- If you list http methods, only those methods are protected --> <http-method>DELETE</http-method> <http-method>GET</http-method> <http-method>POST</http-method> <http-method>PUT</http-method> <url-pattern>/*</url-pattern> </web-resource-collection> <!-- <auth-constraint> <role-name>tomcat</role-name> <role-name>role1</role-name> </auth-constraint> --> </security-constraint> |
上面的配置中,在<security-constraint>节点中添加了下面的内容:
<url-pattern>/*</url-pattern> |
上面的配置中,注释掉了如下内容:
<!-- <auth-constraint> <role-name>tomcat</role-name> <role-name>role1</role-name> </auth-constraint> --> |
上面的配置中,在<security-constraint>节点中添加如下内容:
<description> Constrain the user data transport for the whole application </description> <transport-guarantee> CONFIDENTIAL </transport-guarantee> |
4. 启动Tomcat,验证配置是否成功。
1)输入地址:
5. 资源:
Tomcat关于配置SSL的官方文档:http://tomcat.jaxwiki.org/ssl-howto.html