新网 Java 主机JettySSL部署_子目录 301 到新目录与canonical 标签配合一次搞定
Java 主机启用 HTTPS 并把 HTTP 流量 301 到 HTTPS,是站点上线前必须走完的一步。Jetty 容器加载 JKS 格式证书 后,80 端口的请求要统一跳到 443,避免同一页面出现 HTTP 与 HTTPS 两个版本分散权重。
JKS 格式证书 拿到手先核对域名、颁发者、有效期。Jetty 要求证书链完整,中间证书漏掉会导致部分浏览器和百度蜘蛛抓取失败。用 证书转换工具 转换时把完整链写进 JKS,一次到位。
配置参考(web.xml 强制 HTTPS):
```
server.xml 里新增一个 Connector,port 设为 443,protocol 用 org.apache.coyote.http11.Http11NioProtocol,SSLEnabled 设为 true,keystoreFile 指向 JKS 路径,keystorePass 填密钥库密码,keyAlias 填证书别名。原 80 端口的 Connector 加上 redirectPort="443",所有 HTTP 请求自动跳到 HTTPS。
子目录 301 到新目录 的规则写在反代层最省事。Nginx 里 if ($host = old.com) { return 301 https://new.com$request_uri; },Apache 里 RewriteCond %{HTTP_HOST} ^old.com$ [NC] 配合 RewriteRule ^(.*)$ https://new.com$1 [R=301,L]。规则改完 nginx -t 或 apachectl configtest 校验,再重载。
常见坑:安全组未开放。排查顺序是先看容器日志,再看证书链,再看端口与安全组。443 端口在云服务器安全组、系统防火墙、容器监听三处都要放行,少一处都连不上。证书密码含特殊字符要在 server.xml 里用 & 转义。
HTTPS 对百度排名有明确加成,canonical 标签配合 要同步做。页面里的 canonical 指向 HTTPS 版本,sitemap 全部换成 HTTPS 链接, robots.txt 里的 Sitemap 地址也更新。旧 HTTP 外链不用主动改,301 会把权重带过来,强行改外链反而可能触发异常。

更新时间:2026-08-31 21:56:42