ApacheはX-Forwarded-Forを完全に削除

ApacheはX-Forwarded-Forを完全に削除

わかりました。これはかなり奇妙ですが、X-forwarded-for の値を置き換える必要があります。

私たちは SAP B1 を使用していますが、何らかの理由で、x-forwarded-for には 1 つの文字列"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>

関連情報