反馈已提交

网络繁忙

Tomcat配置SSL证书实现HTTPS访问

  • 文档创建者:文档助手1
  • 历史版本:54
  • 最近更新:Carly 于 2024-01-25
  • 本文为第三方解决方案或非产品相关操作指南,仅提供给具备自主开发能力的用户使用。

    若您的场景方案与文档不完全一致,请移步帆软社区提问:问答



    1. 概述

    启用 HTTPS 协议需要使用有效的 SSL 证书,证书中包含的身份验证信息可帮助用户进行加密通信。

    在单点登录认证系统中,证书是很重要的一把钥匙,客户端与服务器的交互安全靠的就是证书。

    本文仅介绍CentOS系统下Tomcat如何安装SSL证书,以满足HTTPS访问的诉求。其他环境建议咨询你的证书签发机构进行安装。

    2. 在Tomcat安装SSL证书

    2.1 获取证书

    在配置证书前,首先需要申请证书。

    用户需自行向 CA 厂商购买证书,证书认证一般都是由 VeriSign、GlobalSign 等国际公认的 CA 机构进行。

    注:对于正式环境,不可使用 JDK 自带的 keytool 工具生成证书,会出现不安全提醒,导致工程嵌入第三方平台后无法访问。

    2.2 上传证书

    1)以管理员身份入Tomcat安装目录,创建cert文件夹。

    2)以管理员身份%Tomcat_HOME%/cert文件夹,将证书文件上传到该文件夹。

    注1:不同厂商的证书格式不完全相同,不一定和下图文件格式相同。

    注2:如有密钥文件,请也同步上传到该位置。

    2.3 配置server.xml文件

    1)以管理员身份进入%TOMCAT_HOME%/conf文件夹,使用文本编辑器打开server.xml文件。

    2)在server.xml文件中,找到以下配置块:

    <Connector port="8080" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443" />

    在该配置块上方添加以下配置块,请根据你的证书地址、证书格式和密码,修改keystoreFile、keystoreType和keystorePass

    • keystoreFile 支持填写绝对路径或在 Tomcat 中的相对路径。

    • Connector port为你后续访问时所占的端口,请确保端口防火墙已开放,可正常访问。 如希望在访问时不添加端口,直接通过域名访问,请使用 HTTPS 的默认端口 443 。

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                keystoreFile="/path/to/your/keystore/file"
                keystoreType="your_keystore_type"
                keystorePass="your_keystore_password"
                clientAuth="false" sslProtocol="TLS" />

    注1:不建议直接复制粘贴上文代码,可自行找寻文件中该配置库,去除相关代码注释,并修改证书说明即可。

    注2:上文代码示例中,证书格式为.pfx格式。若证书格式为.crt,需要微调代码,示例如下:

    <Connector port="8443"  protocol="org.apache.coyote.http11.Http11NioProtocol"
                  maxThreads="150" SSLEnabled="true" scheme="https">
     <SSLHostConfig sslProtocol="TLS">
            <Certificate certificateFile="/opt/ssl_file/server.crt" certificateKeyFile="/opt/ssl_file/server.key" certificateChainFile="/opt/ssl_file/root.crt" 
                             type="RSA"/>
    </SSLHostConfig>
    </Connector>

    3)保存并关闭server.xml文件

    2.4 确认web.xml文件(可选)

    如需配置HTTP请求自动跳转HTTPS,可执行本节操作。

    1)以管理员身份进入%TOMCAT_HOME%/conf文件夹,使用文本编辑器打开web.xml文件。

    2)在web.xml文件中,确认存在以下配置块,并确认<transport-guarantee>标签的值为CONFIDENTIAL即可:

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Protected Context</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

    3)保存并关闭web.xml文件。

    2.5 重启Tomcat

    请参考 关闭或重启FineReport工程 文档,重启Tomcat服务器,以使配置生效。

    2.6 效果预览

    使用浏览器访问https://your_domain:port,确保能够成功访问,如果网页地址栏出现小锁标志,表示证书已经安装成功。

    • your_domain是你的域名或IP地址。

    • 端口为2.3节配置的Connector port。

    3. 注意事项

    3.1 HTTPS 设置

    Tomcat 配置 SSL 证书实现 HTTPS 访问后,若要保证 Websocket 连接正常,需要配置 HTTPS 设置。

    请先使用管理员账号登录数据决策系统,查看「管理系统>系统管理>常规」中是否出现 HTTPS 设置项。

    • 不出现:说明 Websocket 连接已正确配置,无需修改。

    • 出现:说明 Websocket 连接未正常配置,请参考文档修改:HTTPS配置WebSocket

    6.png

    3.2 无法远程连接

    问题描述

    设计器 远程连接 https 工程失败。

    报错:invalid keystore format

    原因分析

    配置的 https 工程,证书格式为 PKCS12 ,但设计器客户端目前仅支持默认格式 jks 。

    解决方案

    在Tomcat文件夹下面新建一个key文件夹,将jks文件格式的server.keystore放在里面。

    远程连接的时候选择key文件夹的server.keystore。

    附件列表


    主题: 部署集成
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持