サーバーフォールトでの私の最初の投稿なので、偽物をお詫びします:)
問題:WAFとして機能するApacheの背後にある " http:// dummy_server/wp-admin "にアクセスしようとすると、無限のリダイレクトループでスタックします。
HAProxyとWAFの完全な構成は、ここにあります https://www.haproxy.com/blog/scalable-waf-protection-with-haproxy-and-Apache-with-modsecurity/
調査できることとして、dummy_server/wp-adminに対してGETを実行するときに、Apache VHをオフにしているときに(つまり、HAプロキシのみを使用して)dummy_serverにアクセスすると、サーバーは次のように応答します。
HTTP/1.1 302 Found
Date: Wed, 20 Feb 2019 19:00:49 GMT
Location: https://dummy_server/wp-login.php?redirect_to=.....
次に、ブラウザはdummy_server/wp-loginにリダイレクトし、ユーザーの資格情報を待ちます。
それでも、WAFをアクティブにしてdummy_serverに対してGETを実行すると、Locationヘッダーが次のように変更されます。
Location: https://dummy_server/wp-admin
そして、リダイレクトループでスタックする手順。
(modsecurityを使用している)WAF構成をオフにして、Apacheがリバースプロキシとしてのみ機能するようにすると、問題は解決しません。
VM構成は次のとおりです。
<VirtualHost *:90>
<IfModule mod_security2.c>
Include /etc/Apache2/owasp-modsecurity-crs/crs-setup.conf
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
</IfModule>
ProxyPreserveHost On
ProxyRequests Off
ProxyVia Off
ProxyPass / http://192.168.57.22:81/
ProxyPassReverse / http://192.168.57.22:81/
</VirtualHost>
私はこのサイトを検索してきましたが、現在の窮状に役立つものは何も見つかりませんでした。何か案は?
ありがとう!
ここでの問題は、インターネットに直接接続されたWebサーバーがhttps
を使用しているが、そのサーバーとApache2の間の通信はhttp
であるということです。
次に、Wordpressは着信接続がhttp
プロトコルで着信していることを確認しますが、サイトのURLはhttps
として定義されています。そのため、Wordpressはリダイレクトをユーザーに送信します。
wp-config.php
に次の行を追加することで、この問題を修正しました。
$_SERVER['HTTPS'] = 'on';
これがこの問題を処理するための好ましい方法であるかどうかはわかりませんが、私にとってはうまくいきます。
また、適切なHost
ヘッダーをプロキシサーバーに送信する必要もあります。