温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Tomcat中怎么配置SSL

发布时间:2021-06-21 15:15:25 来源:亿速云 阅读:503 作者:Leah 栏目:大数据

Tomcat中怎么配置SSL,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

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

    C:\> keytool -genkey -keyalg RSA -keysize 2048  -sigalg SHA256withRSA -dname "cn=127.0.0.1,ou=product,o=uestc,c=CN" -validity 3650 -storepass uestc@#123zp -keystore c:\key.store
    输入<mykey>的主密码
            (如果和 storepass 密码相同,按回车):(按回车)
    这样就在C:\目录下生成了Server端的安全证书(key.store)。


                       

    备注:

  2. 使用低版本的JDK(如JDK 1.4)带的keytool工具生成证书时,由于不支持SHA256withRSA算法,会报如下错误“java.security.NoSuchAlgorithmException: SHA256WITHRSA Signature not available”;必须使用较高版本的JDK(如JDK 1.6)带的keytool来生成证书。

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

  4. Tomcat中怎么配置SSL  注意:

  5. 生成安全证书的工具keytool的参数validity表示证书的有效期,单位为天,需要根据实际需要配置。

  6. 作为Server端安全证书,CN字段必须与WEB应用的实际域名保持一致,否则会使客户端报证书名称不一致。

  7. 由于某些web容器的原因,keypass和storepass必须保持一致。

  8. 对于非专业证书机构颁发的证书,如果要去掉“不受信任的证书”的告警,需要在客户端的浏览器中导入根证书,步骤如下:

  9. 1)访问https地址,查看证书:

  10. Tomcat中怎么配置SSL

           2)点击复制到文件,即可保存cert文件

  11. Tomcat中怎么配置SSL

  12. 3)打开IE工具栏,选择工具—Internet选项—内容—证书

  13. Tomcat中怎么配置SSL

  14. 4)进入受信任的根证书颁发机构,点击“导入”,将上一步导出的cert文件导入受信任的根证书机构

    Tomcat中怎么配置SSL

    5)重启IE,重新访问https地址,如下,不会提示证书不受信任

  15. Tomcat中怎么配置SSL

  1. 添加Server端安全证书

  1. 打开Tomcat安装目录下的/conf/server.xml文件。

  2. 修改http重定向到https的端口:

    <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"

          sslEnabledProtocols="TLSv1.1,TLSv1.2"[z1] 

          ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA"[z2] 

          keystoreFile="c:/key.store" keystorePass="uestc@#123zp" clientAuth="false" />

[z3] 


 [z1]需要在配置中添加,仅允许此2种

 [z2]需要在配置中添加

 [z3]不能明文存储

注意:

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

2)上述配置,不同的tomcat版本,其配置项可能有一定差别,如果启动后,日志存在异常信息,那么,请在原配置文件上添加以上SSL相关配置项。

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

  1. 配置需要强制使用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过程,保证会话的连续性。

  1. 重新启动Tomcat

  2. 测试建议

  1. 在浏览器里输入:https://xx.xx.xx.xx: 443,应能通过SSL正常访问。

  2. 对于https切换到http页面需要重点进行测试,检查切换后会话是否中断。

  3. 在手机终端上进行测试,看能否正常使用。(如果有手机终端用户的话)。

  4. 使用SSL后,对性能会有影响,可进行性能测试。(可选)

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI