该方案适用于所有基于Tomcat 8.5+ 的生产环境,包括使用 DV SSL证书 或 OV SSL证书 的HTTPS部署场景。
WEB-INF/web.xml末尾添加安全约束:<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>
CONFIDENTIAL会触发Tomcat对所有匹配URL执行307 Temporary Redirect至HTTPS端口。
| 维度 | 参考标准 | 工程师建议 |
|---|---|---|
| 协议兼容性 | RFC 7231 §6.4.7(307语义) | 优先使用307而非301,避免POST数据丢失;若需SEO永久重定向,应在反向代理层实现 |
| HSTS支持 | CA/B Forum BR 1.8.1(要求HSTS预加载) | 在HTTPS Connector中添加`secure="true"`与`sendReasonPhrase="true"`,并在响应头注入`Strict-Transport-Security: max-age=31536000; includeSubDomains` |
| 证书验证路径 | RFC 5280 §6(证书链验证) | 确保证书链完整,中间CA证书已导入JKS;缺失Intermediate会导致Chrome/Firefox显示NET::ERR_CERT_AUTHORITY_INVALID |
Q:跳转后出现SSL_ERROR_BAD_CERT_DOMAIN?
A:证书域名未覆盖请求Host头,例如证书为example.com但用户访问www.example.com;应选用多域名SSL证书或通配符证书覆盖全子域。
Q:能否在不重启Tomcat的情况下生效?
A:server.xml修改需重启;web.xml修改在热部署启用时可自动重载,但部分安全约束变更仍需重启以确保内核级拦截生效。
加密您的网站,赢得客户信任!