私は、ページを提供するApacheサーバーにプロキシしているNginXサーバーでWordpressを使用しています。最近、少なくともAdminセクションでSSLの使用を強制したいと思ったので、 Wordpress HTTPS pluginをインストールしました。 NginXのサーバーセクションは正しく設定されていますが、「管理者にSSLを強制する」オプションを有効にするとリダイレクトループに陥ります。
クッキーの問題だとは思わない。あなたがより多くの情報を必要とするならば、私はあなたにそれを渡します。
私は最近同様の問題に苦しんでいたので、この質問を探す人のためにいくつかの追加情報を提供します。
FORCE_SSL_ADMIN
オプションを定義することを意味します。/* That's all, stop editing! Happy blogging. */
行より上にある必要があることに注意してください。is_ssl()
関数がfalse
を返しているという事実を根絶します。たとえば、SSLオフロードを実行しているリバースプロキシの背後で実行しているとします。その場合、ユーザーはhttps://yourwordpresssite
を入力しますが、SSLオフローダが復号化を処理し、サーバーが要求を受信するまでに要求はSSLではなくなり、サーバーはhttp://yourwordpresssite
を認識します。あなたがここで行き詰まっているならば、あなたのリバースプロキシが適切に設定されていると仮定しても、コーデックスは良いアドバイスを持っています。こちらの説明を参照してください。(http://codex.wordpress.org/Administration_Over_SSL#Using_a_Reverse_Proxy).それでもうまくいかない場合は、リバースプロキシがHTTP_X_FORWARDED_PROTO
ヘッダーを設定していない可能性があります。残念ながら、このようなものは標準化されておらず、SSLオフロードが行われたことを示す方法は複数あります。ロードバランサ(Citrix Netscaler)が使用する方法は、Microsoftが作成したヘッダFront-End-Https
を使用することです。このヘッダは、ウィキペディアに掲載されている一般的な非標準のレスポンスヘッダの1つとして見ることができます(http://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Common_non-standard_response_headers)。サーバーがこのヘッダーを見るまでには、HTTP_FRONT_END_HTTPS
のようになります。 Netscalerはデフォルトではこのヘッダを送信しません。ヘッダを追加するように設定する必要があります。これは ここ で文書化されています、そしてそれを行う方法のNiceビデオデモがあります ここ 。
結局、私たちはサイト全体をHTTPSだけでやっているので、私はWordのプラグインを使うことにしました。安全なページに警告が表示されます)。私はHTTP_FRONT_END_HTTPS
ヘッダーを認識するようにプラグインにパッチを当て、作者にパッチを提出しています、それでいつかこれはそのプラグインによるサポートであるべきです。
がんばろう!
is_ssl()
のチェックはWPでは本当に最善ではありません。あなたは このmu-pluginを取ることができますより良いチェックを受けることができます。それから 単にコーデックスの推奨に固執する 。
WordpressのHTTPSプラグインを宣伝する)トランクを見ると、このプラグインはあまり重要ではありません。