Tomcat中配置SSL
可以根据安全需要,为Tomcat配置SSL,它包含以下两个步骤:
1、准备安全证书
2、配置Tomcat的SSL连接器(Connector)
创建自我签名的证书。
SUN公司提供了制作证书的工具keytool。在JDK1.4以上版本中都包含了这一工具。通过这个工具生成证书的命令为:
keytool -genkey -alias tomcat -keyalg RSA
以上命令将生成包含一对非对称密钥和自我签名的证书,这个命令中参数的意思
lgenkey:生成一对非对称密钥。
-lias:指定密钥对的别名,该别名是公开的。
-keyalg:指定加密算法,此处采用通用的RSA算法。
以上命令将在操作系统的用户目录下生成名为”.keystore”的文件。
l如果希望生成的keystore文件放在其他目录中,可以使用-keystore参数
keytool -genkey -alias tomcat -keyalg RSA -keystore d:\.keystore
l
配置SSL连接器
l在Tomcat的servlet.xml文件中,已经提供了现成的配置SSL连接器的代码,只要把注释去掉即可
l<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
l maxThreads="150" scheme="https" secure="true"
l clientAuth="false" sslProtocol="TLS" />
l其他属性:
lkeystoreFile:指定keystore文件的存放位置,可以指定绝对路经。如果此项没有设定,在默认情况下,Tomcat将从当前操作系统用户的用户名目录下读取名为”.keystore”的文件。
lkeystorePass:指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用”changeit”密码。
l
访问支持SSL的Web站点
l当Tomcat接收到这一HTTPS请求后,会向客户的浏览器发送服务器的安全证书,IE浏览器接收到证书后,将向客户显示安全警报。
在配置tomcat的SSL双向握手中,由于6.0.33版本中默认启用了APR(APR是通过JNI访问的可移植库,可以提高Tomcat的性能和伸缩性),所以采用传统的配置方式(如下)会报异常;
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystorePass="123456" />