Spring Boot 内嵌容器强制HTTPS与移动端适配 301_宝塔面板 Java 项目可用方案
Java 主机启用 HTTPS 并把 HTTP 流量 301 到 HTTPS,是站点上线前必须走完的一步。Spring Boot 内嵌容器 容器加载 腾讯云 TrustAsia 证书 后,80 端口的请求要统一跳到 443,避免同一页面出现 HTTP 与 HTTPS 两个版本分散权重。
免费证书有效期 90 天,付费证书 1 到 2 年。腾讯云 TrustAsia 证书 部署到 Spring Boot 内嵌容器 前用 腾讯云证书工具 转换格式,记录好到期时间,提前 15 天续签,避免证书过期导致站点被浏览器拦截。
配置参考(Spring Boot application.yml): ``` server: port: 443 ssl: key-store: classpath:域名.pfx key-store-password: 证书密码 key-store-type: PKCS12 ```
如果 Spring Boot 内嵌容器 前面挂了 Nginx 或 Apache 反代,SSL 可以卸载在前端,Spring Boot 内嵌容器 只跑 8080。反代层配置 443 证书与 80 跳转 443,再把请求转发到 127.0.0.1:8080,同时透传 X-Forwarded-Proto,避免应用里反复判断协议。
web.xml 加 security-constraint,web-resource-collection 里 url-pattern 填 /*,auth-constraint 留空,user-data-constraint 里 transport-guarantee 填 CONFIDENTIAL。容器检测到请求走 HTTP,会自动返回 302 或 301 跳到 HTTPS。要严格 301,配合 redirectPort 或在反代层做 Rewrite。
常见坑:防火墙拦截。排查顺序是先看容器日志,再看证书链,再看端口与安全组。443 端口在云服务器安全组、系统防火墙、容器监听三处都要放行,少一处都连不上。证书密码含特殊字符要在 server.xml 里用 & 转义。
证书到期前 15 天续签,续签后替换 JKS 文件并重启 Spring Boot 内嵌容器。监控脚本每天 curl 一次 443,证书剩余天数小于 15 就告警。HTTPS 站点一旦证书过期,浏览器拦截、百度降权,恢复需要时间,提前监控成本最低。

更新时间:2026-08-26 22:04:13