欢迎光临靖江市白事服务网
详情描述

1. 准备证书文件

选项A:使用自签名证书(测试环境)

# 生成密钥库
keytool -genkeypair \
    -alias tomcat \
    -keyalg RSA \
    -keysize 2048 \
    -validity 365 \
    -keystore /path/to/keystore.jks \
    -storepass changeit \
    -keypass changeit \
    -dname "CN=localhost, OU=IT, O=Company, L=City, ST=State, C=CN"

选项B:使用CA颁发的证书

从证书提供商获取:

  • domain.crt(服务器证书)
  • domain.key(私钥)
  • ca-bundle.crt(CA证书链)

转换为JKS格式:


# 将PEM格式合并为PKCS12
openssl pkcs12 -export \
 -in domain.crt \
 -inkey domain.key \
 -chain \
 -CAfile ca-bundle.crt \
 -name "tomcat" \
 -out tomcat.p12 \
 -password pass:changeit
转换为JKS格式

keytool -importkeystore \ -deststorepass changeit \ -destkeypass changeit \ -destkeystore keystore.jks \ -srckeystore tomcat.p12 \ -srcstoretype PKCS12 \ -srcstorepass changeit \ -alias tomcat


## 2. 配置Tomcat server.xml

编辑 `$CATALINA_HOME/conf/server.xml`:

### 方案A:HTTP/1.1 Connector
```xml
<!-- 取消注释或添加以下配置 -->
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true"
           scheme="https" secure="true"
           keystoreFile="/path/to/keystore.jks"
           keystorePass="changeit"
           keyAlias="tomcat"
           clientAuth="false"
           sslProtocol="TLS"
           ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
                   TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
                   TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
                   TLS_RSA_WITH_AES_256_GCM_SHA384"
           >
</Connector>

方案B:HTTP/2 Connector(推荐)

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true"
           scheme="https" secure="true">

    <SSLHostConfig 
        certificateVerification="false"
        protocols="TLSv1.2,TLSv1.3">

        <Certificate 
            certificateKeystoreFile="/path/to/keystore.jks"
            certificateKeystorePassword="changeit"
            certificateKeystoreType="JKS"
            type="RSA" />

    </SSLHostConfig>

    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
</Connector>

3. 可选:强制HTTPS访问

$CATALINA_HOME/webapps/ROOT/WEB-INF/web.xml 中添加:

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

4. 启动验证

# 启动Tomcat
$CATALINA_HOME/bin/startup.sh

# 验证HTTPS
curl -k https://localhost:8443/
# 或使用浏览器访问 https://your-domain:8443

5. 高级配置示例

多域名/SNI配置

<Connector port="8443" ...>
    <SSLHostConfig>
        <Certificate 
            certificateKeystoreFile="/path/to/domain1.jks"
            certificateKeystorePassword="pass1"
            hostName="domain1.com"/>

        <Certificate 
            certificateKeystoreFile="/path/to/domain2.jks"
            certificateKeystorePassword="pass2"
            hostName="domain2.com"/>
    </SSLHostConfig>
</Connector>

使用PEM格式证书(Tomcat 9+)

<SSLHostConfig>
    <Certificate 
        certificateFile="/path/to/certificate.pem"
        certificateKeyFile="/path/to/privatekey.pem"
        certificateChainFile="/path/to/ca-bundle.pem"
        type="RSA"/>
</SSLHostConfig>

6. 常见问题解决

端口被占用

# 检查端口占用
netstat -tlnp | grep 8443
# 或修改server.xml中的端口号

证书格式错误

# 检查JKS文件
keytool -list -keystore keystore.jks -storepass changeit

权限问题

# 确保Tomcat用户有读取权限
chmod 640 /path/to/keystore.jks
chown tomcat:tomcat /path/to/keystore.jks

7. 安全建议

密码安全:使用强密码替换默认密码 协议限制:禁用SSLv2、SSLv3,仅启用TLSv1.2+ 密钥算法:使用RSA 2048位或ECDSA 证书更新:设置自动续期提醒 安全扫描:使用SSL Labs测试SSL配置

验证配置

使用以下工具验证:

# 测试SSL连接
openssl s_client -connect localhost:8443 -servername your-domain.com

# 检查证书链
keytool -printcert -sslserver your-domain.com:8443

注意事项

Tomcat 11需要Java 11或更高版本 生产环境建议使用Let's Encrypt等免费CA 配置完成后重启Tomcat生效 防火墙需开放443端口 建议配置HTTP重定向到HTTPS

这样配置后,您的Tomcat 11就支持HTTPS访问了。

相关帖子
2026年全国通检政策下,小型汽车跨省年检的具体流程是怎样的?
2026年全国通检政策下,小型汽车跨省年检的具体流程是怎样的?
2026年智能垃圾分类箱普及,厨余垃圾投放有哪些新变化要注意?
2026年智能垃圾分类箱普及,厨余垃圾投放有哪些新变化要注意?
靖江市网站制作设计服务|app开发,一站式服务
靖江市网站制作设计服务|app开发,一站式服务
城市公共空间的设计,如何能在满足大众需求时兼顾流浪者的尊严?
城市公共空间的设计,如何能在满足大众需求时兼顾流浪者的尊严?
除了住房,2026年哪些消费类目的价格上涨对生活成本指数影响最大?
除了住房,2026年哪些消费类目的价格上涨对生活成本指数影响最大?
对比六大行房屋抵押贷款利率,哪家银行的资金成本最低最划算?
对比六大行房屋抵押贷款利率,哪家银行的资金成本最低最划算?
遇到定制家具商家中途加价或更换材料,依据合同如何处理?
遇到定制家具商家中途加价或更换材料,依据合同如何处理?
持国外驾照的华侨回国定居后,如何换领国内的机动车驾驶证?
持国外驾照的华侨回国定居后,如何换领国内的机动车驾驶证?
老旧小区改造后新增的停车位,其收费标准应如何合理确定?
老旧小区改造后新增的停车位,其收费标准应如何合理确定?
《早发白帝城》的情绪常被解读成“遇赦狂喜”,从哪些字眼能读出这种速度感?
《早发白帝城》的情绪常被解读成“遇赦狂喜”,从哪些字眼能读出这种速度感?
办理押车贷款流程前,车辆违章处理完毕是必须要做的吗?
办理押车贷款流程前,车辆违章处理完毕是必须要做的吗?
暴雨蓝色预警和黄色预警差在哪,普通市民感受得到吗?
暴雨蓝色预警和黄色预警差在哪,普通市民感受得到吗?
黄金的提炼过程是怎样的?现代技术如何确保它的高纯度?
黄金的提炼过程是怎样的?现代技术如何确保它的高纯度?
自家那台骑了好几年的旧电动车,按2026年新规到底算非机动车还是机动车?
自家那台骑了好几年的旧电动车,按2026年新规到底算非机动车还是机动车?
在同意一份订阅协议前,有哪些关键条款是我们必须仔细阅读的?
在同意一份订阅协议前,有哪些关键条款是我们必须仔细阅读的?
我们如何简单区分可用于回收的煎炸废油和不可回收的厨余油脂?
我们如何简单区分可用于回收的煎炸废油和不可回收的厨余油脂?
离婚人士如何办理房屋抵押贷款?详解产权归属与申请材料的特殊性
离婚人士如何办理房屋抵押贷款?详解产权归属与申请材料的特殊性
2026年各地对于享受长期护理险待遇,是否有设置一定的等待期限制?
2026年各地对于享受长期护理险待遇,是否有设置一定的等待期限制?