在 AJP 中使用“secret”时,Tomcat 7.0.100 和 Apache 服务器 2.4 出现错误 403

在 AJP 中使用“secret”时,Tomcat 7.0.100 和 Apache 服务器 2.4 出现错误 403

由于存在错误 CVE-2020-1938,我们希望使用最新的 Tomcat 7.0.100。另请参阅CVE-2020-1938 我们还使用 2.4 版本的 Apache 服务器,它通过 AJP 连接到 Tomcat。

最新版本的 Tomcat 需要进行各种新的安全通信设置,我们已经进行了这些设置。不幸的是,我们总是收到 HTTP 错误 403,不知道为什么。

在 Apache worker.properties 中我们有以下设置:

worker.list=okkommwm57f
ps=\
worker.okkommwm57f.type=ajp13
worker.okkommwm57f.host=192.168.181.240
worker.okkommwm57f.secret=123456
worker.okkommwm57f.port=8309
worker.okkommwm57f.socket_keepalive=1
worker.okkommwm57f.connect_timeout=10000  
worker.okkommwm57f.prepost_timeout=10000
worker.okkommwm57f.socket_timeout=10
worker.okkommwm57f.connection_pool_timeout=600

AJP 连接器配置如下:

<Connector port="8309" protocol="AJP/1.3" redirectPort="8443" secretRequired="true" secret="123456" address="192.168.181.240" />

当我测试网站时,我总是收到 HTTP 错误 403。我尝试了不同的版本,但都无济于事。已经将“secretRequired”设置为“false”。还是不行。

也许有人有主意并可以帮助我解决这个问题。谢谢。

答案1

我遇到过同样的问题。

我必须添加allowedRequestAttributesPattern=".*"到连接器

所以你的情况

<Connector port="8309" protocol="AJP/1.3" redirectPort="8443" secretRequired="true" secret="123456" address="192.168.181.240" allowedRequestAttributesPattern=".*" />

这是 Tomcat 7.0.100 添加的新属性。

向 AJP/1.3 连接器添加新属性 allowedRequestAttributesPattern。具有无法识别属性的请求将被阻止并显示 403。(markt)

虽然我还没搞清楚我们发送的是什么属性。但是如果设置使用通配符,那么您可能发送了无法识别的属性作为 AJP 请求的一部分。

答案2

我遇到了同样的问题。诀窍是设置密码。因此,以下方法为我们解决了这个问题:

服务器.xml:

<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" secret="verysecure" secretRequired="true"/>

工人.属性:

worker.tomcat-06.secret=verysecure

相关内容