侧边栏壁纸
博主头像
晓然博主等级

走着、走着、花开了

  • 累计撰写 37 篇文章
  • 累计创建 15 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Tomcat 8.5 配置 Https SSL 证书

晓然
2022-07-14 / 0 评论 / 0 点赞 / 157 阅读 / 873 字
温馨提示:
本文最后更新于 2022-12-02,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Tomcat 8.5 配置 Https SSL 证书

为什么要写本文

在对接微信小程序时,域名需要https才行,用的百度的服务器,jks格式的证书,然而按照百度官网给的教程Tomcat服务器安装SSL证书 ,并没有成功,自己对Tomcat配置文件也不熟悉,网上的教程找了半天,才发现问题所在。踩的坑记录下来,害怕时间久了,就又忘记了…

配置环境介绍

  • window server 2019
  • Tomcat 8.5
  • jks格式证书(证书位置/…/tomcat/cert/domain.jks)
  • 已安装openssl
  • 已打开443/80端口

配置http ssl

修改配置文件server.xml

  1. 访问域名时,不再添加端口,便修改下列端口,将8080改为808443改为443
<Connector port="8080" protocol="HTTP/1.1"
      connectionTimeout="20000"
      redirectPort="8443" URIEncoding="UTF-8"/>
  1. 配置jks证书相关;下面是百度官方文档的配置,自己在用时,访问htpps,网页就报错,删除了 keystoreType="PKCS12",然后就成功了…
<Connector port="443"
    protocol="HTTP/1.1"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="cert/domain.jks"  #此处keystoreFile代表证书文件的路径,请用您证书的文件名替换domain。
    keystoreType="PKCS12"
    keystorePass="证书密码"   #请用您证书密码文件中的密码替换“证书密码”。
    clientAuth="false"
    SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

3. 配置监听443(是否有必要?),将下列端口8443,改为443

<Connector protocol="AJP/1.3"
           address="::1"
           port="8009"
           redirectPort="8443" />

修改后的server.xml的文件,大致是这样的

<?xml version="1.0" encoding="UTF-8"?>
...
<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="443" URIEncoding="UTF-8"/>
....
<Connector port="443"
    protocol="HTTP/1.1"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="cert/www.xxx.jks"
    keystorePass="xxxxxxx"
    clientAuth="false"
    SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"            ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
.....
</Server>

开启HTTP强制跳转HTTPS

修改配置web.xml文件,强制HTTP跳转HTTPS,这一步按照文档是没问题的,直接拿来用就行了

#在</welcome-file-list>后添加以下内容:
<login-config>  
    <!-- Authorization setting for SSL -->  
    <auth-method>CLIENT-CERT</auth-method>  
    <realm-name>Client Cert Users-only Area</realm-name>  
</login-config>  
<security-constraint>  
    <!-- Authorization setting for SSL -->  
    <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>

结语

在最开始搜索教程时,并没有加上关键字jks,导致走了一些弯路,由于不懂Tomcat,总以为文档时对的。

参考链接

  1. Tomcat从安装到配置Https SSL证书 - 东北小狐狸 - 博客园 (cnblogs.com)
  2. Keytool配置 Tomcat的HTTPS双向认证 - Librarookie - 博客园 (cnblogs.com)
0

评论区