Spring Boot 内嵌容器配置阿里云免费证书实现HTTP 与 HTTPS 共存期平滑过渡_Java虚拟主机HTTPS迁移
美橙互联 Java 主机 部署 SSL 后不做 301,百度会同时收录 HTTP 与 HTTPS 两套页面,权重被稀释。Spring Boot 内嵌容器 配合 阿里云免费证书,把 HTTP 与 HTTPS 共存期平滑过渡 做扎实,收录和排名才能平稳迁移。
把 阿里云免费证书 转成 Spring Boot 内嵌容器 能识别的格式,PFX 直接用 keytool 导入 JKS,PEM 先用 OpenSSL 合成 PFX 再导入。密钥库文件放在 conf 目录下,文件权限设为 600,防止被其他用户读取。
配置参考(server.xml 关键配置):
```
Spring Boot 项目不用改 server.xml,在 application.yml 里配 server.port=443、server.ssl.key-store、server.ssl.key-store-password、server.ssl.key-store-type=PKCS12,再写一个 TomcatServletWebServerFactory 把 80 端口重定向到 443。
强制 HTTPS 的第二种做法是在 Spring Boot 内嵌容器 前端用 Nginx:server 监听 80,return 301 https://$host$request_uri;443 的 server 里配 ssl_certificate 与 ssl_certificate_key,再 proxy_pass 到 Spring Boot 内嵌容器 的 8080。这种方式证书管理集中,性能也更好。
常见坑:redirectPort 未填。排查顺序是先看容器日志,再看证书链,再看端口与安全组。443 端口在云服务器安全组、系统防火墙、容器监听三处都要放行,少一处都连不上。证书密码含特殊字符要在 server.xml 里用 & 转义。
整站 301 期间保持服务器稳定,返回码统一 301,不要出现 302、303、js 跳转、meta refresh 混用。百度对 301 的权重传递最完整,其他跳转方式会损失权重或被判定为作弊。跳转链不要超过 1 层,多层 301 会延迟收录迁移。

更新时间:2026-09-03 16:29:03