
わかりました。これはかなり奇妙ですが、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>