tomcat 配置HTTPS
1.软件环境
win7
JDK1.7
Tomcat 7.0
2.具体步骤
前提:安装jdk以及tomcat,并且配置好jdk的环境变量(JAVA_HOME和PATH)
a.使用javatool生成keystore
运行——cmd——进入jdk的安装目录——bin目录,使用命令如下图
keytool -genkey -alias my-alias-name -keyalg RSA -keystore keystore-file
tips:名字和姓氏所输入的是网站的域名或者ip,这里测试所使用的是localhost
b.修改tomcat配置文件server.xml
打开x:\x\Apache Software Foundation\tomcat 7.0.54\conf文件夹中的server.xml
将 Connector port="8443" 这个节点替换成
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
enableLookups="false"
acceptCount="100" disableUploadTimeout="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="C:/Program Files/Java/keystore-file"
keystorePass="123456" />
tips:keystoreFile是指keystore的存放地址,keytool生成的keystore文件默认是存放在jdk的bin目录下,可自行拷贝到任一目录。
3.测试
启动tomcat。双击tomcat/bin文件夹中的startup.bat
在浏览器中输入 https://localhost:8443 出现如下界面,则表示https 8443端口配置成功
tomcat7 配置HTTPS
第一步,生成.keystore文件
%JAVA_HOME%keytool -genkey -alias tomcat -keyalg RSA -keystore my.keystore
第二步,修改tomcat的server.xml文件
把生成的tomcat.keystore文件复制到tomcat的conf文件夹下,和server.xml文件同路径,
<Connector
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="./conf/ mytomcat.keystore" keystorePass="123qew"
clientAuth="false" sslProtocol="TLS"/>
其中123qwe是生成my.keystore时设置的密码,如果只想用https访问,需要注释原来的8080窗口监听
<!--Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" / -->
最近在使用时发现,同样的配置【配置如下】:
<Connector port="8080" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="./conf/tomcat.keystore" keystorePass="123qwe"/>
在tomcat-7.0.27下正常,在tomcat-7.0.23下不正常,最终解决方法是
<Connector port="8080" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="./conf/tomcat.keystore" keystorePass="123qwe"/>
这里介绍APR的原因是,Connector的配置与是否支持APR有着微妙的关系,如下的Connector配置在支持APR的情况下就会出错哦!
因为tomcat-6,tomcat-7.0.23中的配置使Connector实例加载org.apache.coyote.http11.Http11AprProtocol协议处理器,而Http11AprProtocol没有keystoreFile属性,所以在启动时会报错!因此,这里推荐的Connector配置:protocol="org.apache.coyote.http11.Http11Protocol" 或者protocol="org.apache.coyote.http11.Http11AprProtocol" 即可。

浙公网安备 33010602011771号