Apache 完全删除 X-Forwarded-For

prd*_*prd 3 sap apache-2.4

好吧..这很奇怪,但我需要替换 X-forwarded-for 值。

我们正在使用 SAP B1,由于某种原因,它需要 x-forwarded-for 仅包含一个字符串"https://sap.domain.tld:443"和该值。没有其他主机,也没有逗号。正是如此。

现在,我正在使用各种代理和 cloudflare,因此在 X-forwarded-for 中添加了一些值,我必须删除这些值才能访问 SAP B1 Web Access。我需要删除所有这些值。

以下是我在 apache 中的配置:

    SSLEngine On
    SSLCertificateFile      /etc/ssl/crt/sap.crt
    SSLCertificateKeyFile /etc/ssl/private/4096.key
    SSLCACertificateFile    /etc/ssl/ca/ca.crt

    SSLProxyEngine On
    SSLProxyCheckPeerCN off
    SSLProxyVerify none
    SSLProxyCheckPeerName off
    SSLProtocol -all +TLSv1.2 +TLSv1.1 +TLSv1
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA$

    ProxyPreserveHost On
    ProxyVia full
    ProxyPass / https://10.1.1.1:8100/
    ProxyPassReverse / https://10.1.1.1:8100/
    ProxyAddHeaders off
    RequestHeader unset X-forwarded-for
    RequestHeader set X-Forwarded-For "https://sap.domain.tld:443"
Run Code Online (Sandbox Code Playgroud)

我已经添加了ProxyAddHeaders off,但 apache 仍然添加了新的 X-Forwarded-For。我怎样才能将它们全部删除?

小智 5

我最近遇到了类似的问题。对我来说,事实证明这ProxyAddHeaders off在上下文中不起作用<VirtualHost>(尽管有文档)。将指令放入上下文后,<Location>Apache 停止X-Forwarded-*按预期添加标头。

你的可能看起来如下......

<Location />
    ...
    ProxyPass https://10.1.1.1:8100/
    ProxyPassReverse https://10.1.1.1:8100/
    ProxyAddHeaders off
    RequestHeader unset X-forwarded-for
    RequestHeader set X-Forwarded-For "https://sap.domain.tld:443"
</Location>
Run Code Online (Sandbox Code Playgroud)

  • “ProxyAddHeaders Off”就是答案,谢谢 (2认同)