WordPressを常時SSL化するときにつまずいたこと

AWSの東京リージョンでもCertificate Managerが使えるようになり、1か月遅れですが使ってみてWordPressで使用する際の注意点についてまとめてみました。

Certificate Managerの設定方法や、ELBの設定方法は他の方々がすでに説明しているので割愛です。

1. WordPress アドレス (URL)をhttps://ドメイン名に変更すると302リダイレクトが無限に続きエラーを起こしてしまう。
WordPress Codex 日本語版の管理画面での SSL 通信のページには下記の内容が書いてあり対策方法も載っていました。

SSL を提供するリバースプロキシにより WordPress がホストされ、自身は SSL なしでホストされる場合、このオプションを設定すると当初すべてのリクエストが無限リダイレクトループに陥ります。これを避けるには HTTP_X_FORWARDED_PROTO ヘッダーを認識するように WordPress を構成してください。ここでリバースプロキシは適切に構成されており、ヘッダーを設定するものとします。

wp-config.phpの一番上に下記のコードを記載しました。

define('FORCE_SSL_ADMIN', true);
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED
_PROTO'] == 'https' ) {
       $_SERVER['HTTPS']='on';
}

これで無限リダイレクトから正常な動作に戻りました。

2.httpからhttpsに.htaccessで転送をかけるとELBからインスタンスが外れてしまう。

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !^https$
RewriteCond %{REQUEST_URI} !hc.txt$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

hc.txtというからのファイルを作って、そこに対してヘルスチェックを行っていたのですが、.txtファイルまでhttpsにリダイレクトしてしまい、ヘルスチェックに対して302を返していたので、
.txtファイルは転送から外す設定をしました。

スポンサーリンク
広告01
広告01

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
広告01