【发布时间】:2016-03-04 14:23:42
【问题描述】:
我正在尝试在 Tomcat 8 中设置 HTTP 到 HTTPS 重定向。 下面是配置—— web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>securedapp</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint />
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
服务器.xml
<Connector executor="tomcatThreadPool"
port="50915"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxHttpHeaderSize="99999"
server=" Web"
keepAliveTimeout="90000"
maxKeepAliveRequests="-1"
acceptorThreadCount="40"
allowTrace="true"
redirectPort="50921" />
<Connector executor="tomcatThreadPool"
port="50921"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxHttpHeaderSize="99999"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
server="Web"
keepAliveTimeout="90000"
maxKeepAliveRequests="-1"
acceptorThreadCount="40"
allowTrace="true"
keystoreFile="/web/home/wb10d1/.keystore"
keystorePass="changeit"/>
更新#1 我可以在配置的端口上通过 http 和 http 访问,没有任何问题:
http://hostname:50915/webapp
https://hostname:50921/webapp
但是当我尝试如下访问时 https://hostname:50915/webapp
我希望 Tomcat 应该将其从为端口#50915 配置的非 SSL 连接器重定向到为端口#50921 配置的 SSL 连接器,但它似乎不起作用。我看到的唯一错误是下面的错误。
catalina.out
[#|INFO|2016-03-05 00:14:55.524+1000|1|org.apache.coyote.AbstractProtocol.start|Starting ProtocolHandler ["http-nio-50915"]|#]
[#|INFO|2016-03-05 00:14:55.536+1000|1|org.apache.coyote.AbstractProtocol.start|Starting ProtocolHandler ["http-nio-50921"]|#]
[#|INFO|2016-03-05 00:14:55.541+1000|1|org.apache.catalina.startup.Catalina.start|Server startup in 6831 ms|#]
[#|INFO|2016-03-05 00:15:33.254+1000|120|org.apache.coyote.http11.AbstractHttp11Processor.process|Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.|#]
我已将“-Djava.net.debug=all”传递给 java,但除了上述错误之外,没有给出任何其他信息。 从上面的错误很清楚为什么没有解析标题。有没有办法获得更深层次的调试输出来帮助解决问题?
【问题讨论】:
-
您确定您的请求实际上是有效的 http 请求吗?也许您的 HTTP-Header 太大(cookie 太多)?如果在端口 50921 上禁用 ssl 怎么办,你还会收到错误吗?
-
是的,我可以使用hostname:50915/webapp访问
-
hostname:50921/webapp是怎么回事你也可以访问它吗? -
是的,我也可以访问hostname/webapp
-
你的意思是
hostname:50921/webapp?