美文网首页
Tomcat7 的 HTTPS 访问方式配置

Tomcat7 的 HTTPS 访问方式配置

作者: 码农梦醒 | 来源:发表于2016-08-04 11:41 被阅读1112次

    一. 环境

    1. 下载 tomcat7
    2. 安装好 jdk

    二. 正式配置

    1. 使用jdk生成证书

    打开终端执行命令:<JAVA_HOME>/bin/keytool.exe -genkey -alias tomcat -keyalg RSA -keystore E:\tomcat.keystore -validity 36500
    命令说明:
          E:\tomcat.keystore : 指证书生成的位置
          validity 36500: 指证书的有效期100年(默认90天)[单位:天]
    
    在命令行填写必要的参数:
    A、输入keystore密码:此处需要输入大于6个字符的字符串
    B、“您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将来要在浏览器中输入的访问地址
    C、“你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息
    D、输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以
    

    2. 将证书配置到jdk中,并启用https

    配置Tomcat, 打开tomcat配置文件, 如:D:/apache-tomcat-6.0.29/conf/server.xml,修改如下(共需要修改3处地方)

    原始配置:
    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    
    修改之后的配置:(这里的redirectPort与后台的相关端口要对应)
    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="443" />
    
    原始配置:
    <!--
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                  maxThreads="150" scheme="https" secure="true"
                  clientAuth="false" sslProtocol="TLS"/>
     -->
    
    去掉注释修改为:
    <!-- keystoreFile:证书文件存放位置 -->
    <!-- keystorePass:生成证书文件时,输入的tomcat密码 -->
    <!--这个port的值应该对应上一步配置的redirectPort的值-->
    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
                   maxThreads="150" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS" keystoreFile="E:/tomcat.keystore" keystorePass="123456789"/>
    
    原始配置:
    <!--
       <Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="8443" />
    -->
    
    <!-- 这个redirectPort的值,对应的是上一步配置的port的值 -->
    去掉注释修改为:
    <Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="443" />
    

    3. 强制tomcat使用https方式访问

    打开<TOMCAT_HOME>/conf/web.xml文件,在文件末尾添加如下内容:

    <login-config>
            <auth-method>CLIENT-CERT</auth-method>
            <realm-name>Client Cert Users-only Area</realm-name>
    </login-config>
    <security-constraint>
        <web-resource-collection >  
            <web-resource-name >SSL</web-resource-name>  
            <url-pattern>/*</url-pattern>  
         </web-resource-collection>  
            <user-data-constraint>  
                <transport-guarantee>CONFIDENTIAL</transport-guarantee>  
            </user-data-constraint>
    </security-constraint>
    

    最后

    上述配置完成后,重启TOMCAT后即可以使用SSL。IE地址栏中可以直接输入地址 “http://” 会自动跳转成为 “https://”

    通过IE访问:

    Paste_Image.png Paste_Image.png

    ** 通过chrome访问:**

    Paste_Image.png Paste_Image.png

    p.s.

    为什么会有证书的错误提示?
    自己创建的证书,是没有经过证书机构认证的,在实际的应用中需要向证书机构购买证书

    ** 我想通过端口号访问怎么办? **
    上例中配置的443端口,可以通过443访问,不过即使加了443,还是会转为80端口,如果想强制使用某端口,那就不要配置443(443在配置似乎中是个例外),比如配置为:8443,那么就必须使用8443访问了,最终url也不会跳回80端口,配置为8889,那么就必须使用8889访问了,最终url也不会跳回80端口。
    这里一定要与http端口的配置区别开来哈,因为http端口只要配置一个地方就ok了

    相关文章

      网友评论

          本文标题:Tomcat7 的 HTTPS 访问方式配置

          本文链接:https://www.haomeiwen.com/subject/iaycsttx.html