Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat 8的HTTP到HTTPS重定向问题_Java_Tomcat_Ssl - Fatal编程技术网

Java Tomcat 8的HTTP到HTTPS重定向问题

Java Tomcat 8的HTTP到HTTPS重定向问题,java,tomcat,ssl,Java,Tomcat,Ssl,我正在尝试在Tomcat8中设置HTTP到HTTPS重定向。 以下是配置- web.xml 安全DAPP /* 我希望Tomcat应该将它从为端口50915配置的非SSL连接器重定向到为端口50921配置的SSL连接器,但它似乎不起作用。我看到的唯一错误是下面的错误 卡塔琳娜,出去 [#|INFO|2016-03-05 00:14:55.524+1000|1|org.apache.coyote.AbstractProtocol.start|Starting ProtocolHandler ["

我正在尝试在Tomcat8中设置HTTP到HTTPS重定向。 以下是配置- web.xml

安全DAPP /*

我希望Tomcat应该将它从为端口50915配置的非SSL连接器重定向到为端口50921配置的SSL连接器,但它似乎不起作用。我看到的唯一错误是下面的错误

卡塔琳娜,出去

[#|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,但这只会给出上述错误。 从上面的错误可以很清楚地看出为什么没有解析头。有没有办法获得更深层次的调试输出,以帮助解决问题


我见过其他类似的问题,如和。但是,这些似乎对我不起作用。

很抱歉耽搁了;最初我错过了链接请求

重定向正在工作。 50915是这个Tomcat上的HTTP端口和50921 HTTPS。当你浏览http://host:50915/xyz 其中xyz与安全约束匹配,这里任何xyz都应该由Tomcat返回一个重定向,告诉您的浏览器/etc使用https://host:50921/xyz 相反,它会自动这样做;你实际上看不到任何不同


您不能在HTTPS端口上执行HTTP,反之亦然;这就是为什么HTTP和HTTPS连接器首先有不同的端口。如果尝试在端口50915上执行HTTPS,Tomcat会将初始SSL握手消息ClientHello视为纯文本HTTP请求,当然这是一个完全无效的HTTP请求,因此解析HTTP请求头时出错。如果您尝试在50921上执行HTTP,Java SSL代码会尝试将HTTP请求作为ClientHello进行处理,而ClientHello根本不起作用,因此它会抛出异常,并在异常消息中实际显示可能的明文;我想不起来了,现在也无法在Tomcat日志中测试它的外观。

您确定您的请求实际上是一个有效的http请求吗?也许你的HTTP头太大太多Cookie?如果您在端口50921上禁用ssl,您还会收到错误吗?是的,我可以使用主机名:50921/webapp访问它。您也可以访问它吗?是的,我也可以访问您的意思是主机名:50921/webapp?但是如果我转到,它会更改为https???
[#|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.|#]