tomcat配置https协议主要有如下三步:
- 生成证书
- 导出证书文件
- 证书导入jdk
- tomcat配置
生成证书
这里使用SUN公司提供的制作证书的工具keytool来创建证书。创建证书的命令如下:
keytool -genkey -alias wsria -keyalg RSA -keystore d:/test/keys-tools
其中wsria是别名,可以随便取,执行上述命令后,大致如下:
有两点需要注意:
- 密码取自己容易记得住的
- 名字和姓氏一定要是你需要配置https的域名,我使用的是localhost,如果你用其他域名的话,必须在hosts文件配置一下。
其他的参数可以随便取。
导出证书
导出证书的命令如下:
keytool -export -file d:/test/wsria.crt -alias wsria -keystore d:/test/keys-tools
命令执行之后的效果如下:
这一步导出的证书是为了分发给jdk使用的,下一步就是将证书分发给jdk了。
证书分发到jdk
jdk导入证书的命令如下:
keytool -import -keystore D:\Java\jdk1.6\jre\lib\security\cacerts -file D:/test/wsria.crt -alias wsria
执行上述命令时需要输入密码,默认密码是“changeit”。需要注意的是:“D:\Java\jdk1.6\jre\lib\security\cacerts”是当前主机正在使用的jdk。
命令执行后的效果如下:
tomcat配置
这一步其实就是要启用Web服务器(Tomcat)的SSL,也就是HTTPS加密协议, 准备好一个干净的tomcat,本教程使用的是apache-tomcat-6.0 。打开tomcat目录的conf/server.xml文件,开启83和87行的注释代码,并设置keystoreFile、keystorePass修改结果如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="D:\test\keys-tools"
keystorePass="garrett" />
其中:
- keystoreFile:在第一步创建的key存放位置
- keystorePass:创建证书时的密码
OK,至此tomcat的SSL启用完成,现在就可以启动tomcat进行测试了。
启动完成之后,在浏览器输入“https://localhost:8443”,如果是IE浏览器,会出现如下页面:
选择“继续浏览”,会出现如下页面:
至此,tomcat配置https就完成了。
关于上述配置过程如有纰漏,欢迎继续交流讨论。