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" 即可。

posted @ 2016-12-23 10:23  malcome  阅读(42)  评论(0)    收藏  举报