Google Cloud Platform HTTP ロード バランサでエンドポイント ターミネーションをセットアップし、バックエンドとの通信用のプロトコルとして HTTPS を設定しました。
これは、すべてのリクエスト (HTTP または HTTPS) が apache に対して HTTPS であることを意味します。これの問題は、が に設定されている場合でも、HTTPS
環境変数が に設定されることです。on
X-Forwarded-Proto
http
私の調査とテストのすべては、逆のケースのみを指しています(いつに設定HTTPS
するかはルールによるものです)。on
X-Forwarded-Proto
https
SetEnvIf X-Forwarded-Proto https HTTPS=on
しかし、 のときに設定を解除するものが必要です。HTTPS
X-Forwarded-Proto
http
、、およびSSLOptions -StdEnvVars
の多くの組み合わせと同様に、設定を試みました。mod_rewrite を介して設定することは、私にとってはオプションではありません (とにかく機能するかどうかはわかりません)。オフにすることについての興味深い点は、オフにしても、SSL 関連の変数はすべて消えており、構成ファイルでそれを設定しているものは他にないことを確認できます。SetEnvIf
SetEnv
UnsetEnv
StdEnvVars
HTTPS
編集:
サーバー構成、vhost、および htaccess で試したディレクティブの例:
SetEnvIf X-Forwarded-Proto http HTTPS=Off
SetEnvIf X-Forwarded-Proto http HTTPS=0
SetEnvIf X-Forwarded-Proto http !HTTPS
SetEnv HTTPS Off
SetEnv HTTPS 0
SetEnv HTTPS
UnsetEnv HTTPS
これらのディレクティブを他の変数とともに使用すると、次のようなテストが正常にfoo
機能します。