web-dev-qa-db-ja.com

WordpressのHTTPSプラグインを使用したSSLリダイレクトループ

私は、ページを提供するApacheサーバーにプロキシしているNginXサーバーでWordpressを使用しています。最近、少なくともAdminセクションでSSLの使用を強制したいと思ったので、 Wordpress HTTPS pluginをインストールしました。 NginXのサーバーセクションは正しく設定されていますが、「管理者にSSLを強制する」オプションを有効にするとリダイレクトループに陥ります。

クッキーの問題だとは思わない。あなたがより多くの情報を必要とするならば、私はあなたにそれを渡します。

6
Injeniero Barsa

私は最近同様の問題に苦しんでいたので、この質問を探す人のためにいくつかの追加情報を提供します。

  1. あなたのサイトの管理者にSSLを強制しようとするときにあなたが取るべき最初のステップは コーデックスの指示に従うことです 。これはあなたのwp-config.phpファイルでFORCE_SSL_ADMINオプションを定義することを意味します。
  2. コーデックスの警告 /この編集は/* That's all, stop editing! Happy blogging. */行より上にある必要があることに注意してください。
  3. これがリダイレクトループを引き起こす可能性がある多くの考えられる理由がありますが、それらはすべてWordpressの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ヘッダーを認識するようにプラグインにパッチを当て、作者にパッチを提出しています、それでいつかこれはそのプラグインによるサポートであるべきです。

がんばろう!

5
jptsetme

is_ssl()のチェックはWPでは本当に最善ではありません。あなたは このmu-pluginを取ることができますより良いチェックを受けることができます。それから 単にコーデックスの推奨に固執する

WordpressのHTTPSプラグインを宣伝する)トランクを見ると、このプラグインはあまり重要ではありません。

Mu-Plugins

コーデックスのMUプラグイン

1
kaiser