Tomcat开启https
d2xy
10年前
为了防止包监听,Https属于必须品,现在Web服务器基本上都有直接支持https的功能,这里记录一下在tomcat里面怎么开启https。
1. 生成Keystore (使用tomcat作为别名,RSA算法)
Windows:
%Tomcat_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
Unix:
$Tomcat_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA
证书生成之后使用list命令查看证书内容
$Tomcat_HOME/bin>keytool -list
Note:系统中更常用的是使用openssl生成证书。
2. 在$Tomcat\conf\server.xml中修改tomcat connector,开始https connector,端口改成ssl的默认端口443,加入keystoreFile位置和keystore刚刚设置的密码。
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 --> <Connector protocol="HTTP/1.1" port="443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="${user.home}/.keystore" keystorePass="********" clientAuth="false" sslProtocol="TLS"/>
Note:因为大部分人都习惯输入http地址,为了友好,可以直接把http connector直接redirect到ssl的connector上面,只要简单的加入端口重定向(redirectPort="443")就可以了。
3. 重启tomcat
大功告成,重启tomcat之后的访问都必须走https,不用担心被轻易偷包了,当然这种https认证由于是自己生成的,没有经过认证,会被浏览器警告,要生成认证证书,那就是另外一个故事了。
Note:Tomcat也支持修改web.xml的security-constraint来保证所有的访问是通过https。