Apache 彻底删除 X-Forwarded-For

Apache 彻底删除 X-Forwarded-For

好的..这很奇怪,但我需要替换 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"

我已经添加了ProxyAddHeaders off,但是 apache 仍然添加新的 X-Forwarded-For。我该如何将它们全部删除?

答案1

我最近遇到了类似的问题。对我来说,事实证明它在上下文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>

相关内容