有很多手册如何启用从HTTP自动重定向到HTTPS。但我需要禁用此类重定向(根据此建议SSL everywhere - all the time)。我使用Tomcat 7.x,我需要实现下一步:
所有资源都受到保护(通过web.xml中的配置)[已完成]
<security-constraint>
<web-resource-collection>
<web-resource-name>Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
我尝试删除redirectPort
中的server.xml
,
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"/>
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />
但它只导致重定向到443端口(但我希望禁用重定向)。
所以我的问题是:如何禁用从HTTP到HTTPS的自动重定向并返回错误?
答案 0 :(得分:3)
redirectPort –如果此连接器支持非SSL请求,并且收到一个要求进行SSL传输匹配的请求,则Catalina将自动将请求重定向到此处指定的端口号。
redirectPort
仅表示端口,但不允许/禁止重定向,如果未指定,则Catalina将重定向到默认的https端口(即443)。
因此,请检查您的web.xml
文件(WEB-INF / web.xml和CATALINA_HOME / conf / web.xml),最后您可能会看到security-constraint
和<web-resource-name>HTTPSOnly</web-resource-name>
或{{ 1}}。将<transport-guarantee>CONFIDENTIAL</transport-guarantee>
编辑为HTTPSOnly
,将HTTPSOrHTTP
编辑为CONFIDENTIAL
。
答案 1 :(得分:1)
在conf / web.xml中注释掉块。这样做,redirectPort将被忽略。
答案 2 :(得分:-1)
在spring boot&#39;嵌入tomcat,将redirect port设置为0不会自动重定向,在我的情况下