字符 [_] 在域名中永远无效

Abi*_*nyu 8 tomcat

我有一个例外,不能在域名中使用下划线。我想知道这个异常是版本特定的还是域名中不能给出下划线。如果它是特定于版本的,请告诉我如何解决它。

java.lang.IllegalArgumentException:字符 [_] 在域名中永远无效。在 org.apache.tomcat.util.http.parser.HttpParser$DomainParseState.next(HttpParser.java:946) 在 org.apache.tomcat.util.http.parser.HttpParser.readHostDomainName(HttpParser.java:842) 在 org .apache.tomcat.util.http.parser.Host.parse(Host.java:66) 在 org.apache.tomcat.util.http.parser.Host.parse(Host.java:40) 在 org.apache.coyote .AbstractProcessor.parseHost(AbstractProcessor.java:277) at org.apache.coyote.ajp.AjpProcessor.prepareRequest(AjpProcessor.java:934) at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:456) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800) 在 org.apache。

Chr*_*ltz 6

Tomcat 8.5.x 及更高版本实施严格的符合 RFC 的主机名作为安全预防措施。HTTP RFC需要主机头验证,因此 Tomcat 执行该验证。

有一个线索RFC文档需要这种检查,并定义什么可以和什么不能在一个主机名。

您唯一的选择是降级 Tomcat(不推荐)或将您的主机名修复为有效域名。

  • 通过查看 tomcat 变更日志(https://tomcat.apache.org/tomcat-8.5-doc/changelog.html 和 https://tomcat.apache.org/tomcat-9.0-doc/changelog.html),它看起来像进行此更改的 tomcat 8.5 和 9 的确切版本是 8.5.31 和 9.0.5。我猜想更改是“对所有连接器提供的主机名和端口启用严格验证”的描述所进行的更改 (2认同)