zoukankan      html  css  js  c++  java
  • apache Tomcat配置SSL(https)步骤

    Tomcat配置https

    1      生成Server端安全证书

    要实现通信加密,首先要在本地准备一份符合X.509标准的Server端安全证书。如果有条件的话,可以向权威CA申请一份经过认证的安全证书(需要繁琐的手续和金钱)。如果没有条件的话,可以使用JDK提供的证书生成工具,在Windows命令行中操作如下:

    C:> keytool -genkey -keyalg RSA -keysize 1024  -sigalg SHA1withRSA -dname "cn=127.0.0.1,ou=product,o=nokia,c=CN" -validity 3650 -storepass nokia12345 -keystore c:key.store

    输入<mykey>的主密码

            (如果和 keystore 密码相同,按回车):(按回车)

    这样就在C:目录下生成了Server端的安全证书(key.store)。

    备注:Linux下创建证书时,只需要更改上面命令的路径信息,其余不变。

      注意:

    1. 生成安全证书的工具keytool的参数validity表示证书的有效期,单位为天,需要根据实际需要配置。
    2. 作为Server端安全证书,CN字段必须与WEB应用的实际域名保持一致,否则会使客户端报证书名称不一致。
    3. 由于某些web容器的原因,keypass和storepass必须保持一致。
    4. 打开Tomcat安装目录下的/conf/server.xml文件。
    5. 修改http重定向到https的端口:

    2      添加Server端安全证书

        <Connector executor="tomcatThreadPool"

                   port="8080" protocol="HTTP/1.1"

                   connectionTimeout="20000"

                   redirectPort="443" />

    注意:不同的tomcat版本,其配置项可能有一定差别,请在原配置文件上修改蓝色部分即可。

    1. 修改https参数

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

              maxThreads="150" scheme="https" secure="true"

              ciphers="SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"

              keystoreFile="c:/cert/key.store" keystorePass=" nokia12345 "

              clientAuth="false" sslProtocol="TLS" />

    注意:

    keystoreFile参数的文件名请使用绝对路径,keystorePass参数上的口令即storepas口令。

    1. 如果SSL不能正常启动,可以指定使用Java Secure Socket Extension (JSSE),即将protocol="HTTP/1.1"修改为protocol="org.apache.coyote.http11.Http11Protocol"

    3      配置需要强制使用SSL的目录或文件

    例如对于/SSL目录下的所有文件和/test/login.jsp需要强制使用SSL,则编辑Tomcat对应web应用目录下的WEB-INF/web.xml,在<web-app>节中加入如下配置:

    <security-constraint>

             <web-resource-collection>

                       <web-resource-name>SSL</web-resource-name>

                       <url-pattern>/SSL/* </url-pattern>

                       <url-pattern>/test/login.jsp</url-pattern>

             </web-resource-collection>

             <user-data-constraint>

                       <transport-guarantee>CONFIDENTIAL</transport-guarantee>

             </user-data-constraint>

    </security-constraint>

    注意:

    Web应用中,从https切换到http过程中会丢失session,无法保持会话的连续。解决的办法就是用http-https-http过程代替https-http过程,保证会话的连续性。

    4      重新启动Tomcat

    5      测试建议

    1. 在浏览器里输入:https://xx.xx.xx.xx:8443,应能通过SSL正常访问。
    2. 对于https切换到http页面需要重点进行测试,检查切换后会话是否中断。
    3. 在手机终端上进行测试,看能否正常使用。(如果有手机终端用户的话)。
    4. 使用SSL后,对性能会有影响,可进行性能测试。(可选)
  • 相关阅读:
    Win10设置文件夹权限报错-(提示:无法枚举容器中的对象 访问被拒绝)
    判断上传文件是否是图片文件
    PB调用C#编写的Dll类库
    C#txt文件创建并写入信息
    三十分钟学完Vue
    html增加锚点定位
    Asp.Net WebApi 调试利器“单元测试”
    ios端 返回上一级后 卡在正在加载中处理方式
    [转]如何为图片添加热点链接?(map + area)
    JS获取当前时间并格式化"yyyy-MM-dd HH:mm:ss"
  • 原文地址:https://www.cnblogs.com/qqzy168/p/3140252.html
Copyright © 2011-2022 走看看