历史版本41 :Tomcat配置SSL证书实现HTTPS访问 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

本文方案由番薯提供,提供给具备自主开发能力的用户使用。

若您的场景方案与文档不完全一致,技术支持不负责文档的维护和使用问题解答。请移步帆软社区提问:问答


目录:

1. 概述编辑

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

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

本文简单介绍如何为服务器配置HTTPS访问。

2. Tomcat配置https访问编辑

2.1 获取证书

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

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

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

2.2 上传证书

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

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

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

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和keystorePass

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

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

注3:Connector port为你后续访问时所占的端口,本文使用的是8443,请确保端口可访问。

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

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

2.4 确认web.xml文件

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 重启工程

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

2.6 效果预览

使用浏览器访问访问https://your_domain:8443,确保能够成功访问Tomcat服务器即可,如下图所示:

  • 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。