通过security constraint配置HTTP转HTTPS时URL带端口报错如何解决
解决方案
你现有web.xml中的security-constraint配置本身无需调整,重定向携带非预期端口的原因是Servlet容器(如Tomcat、Jetty等)的HTTP监听端口配置中,指定的HTTPS重定向端口不是HTTPS默认的443端口:
- 当重定向端口为HTTPS默认的443时,重定向URL不会显式携带端口号
- 你当前配置的重定向端口为12311,因此会被拼接到重定向地址中
以最常用的Tomcat容器为例,调整步骤如下:
- 打开Tomcat安装目录下的
conf/server.xml配置文件 - 找到HTTP服务对应的
Connector配置项,通常端口配置为80或者8080,将其中的redirectPort属性值修改为443,示例修改后的配置如下:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
- 确认你的HTTPS服务对应的
Connector配置的端口为443,对应配置示例参考:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <!-- 此处保留你原有SSL证书、密钥等配置即可 --> </Connector>
- 重启Tomcat服务后重新测试,HTTP请求会直接重定向到不带端口的HTTPS地址。
如果使用其他Servlet容器,操作逻辑一致:修改HTTP监听器的HTTPS重定向端口配置为默认的443即可生效。
内容的提问来源于stack exchange,提问作者goni.b
相关产品推荐
相关产品推荐

