LoginSignup
5

More than 3 years have passed since last update.

AWS の ALBでHTTPS化してEC2ではHTTPでWordpressを動かすときの設定

Last updated at Posted at 2019-06-06

AWS KUSANAGI

AWSにKUSANAGIパッケージがあるのでそれをインストールします。
https://kusanagi.tokyo/cloud/kusanagi-for-aws/

KUSANAGIをHTTPで動かす(HTTPSにしない)

KUSANAGIのインストールで、

kusanagi init

したときに問い合わせでメールアドレスを、、、と聞かれたときに、メールアドレスを入力するとLet's EncryptでSSLが勝手に導入されてしまうので、メールアドレスを入力しないでEnterを2回入れればSSL設定を回避し、HTTPで起動できるようになります。

ALB(Application Load Balancer)でHTTPS化

AWSでロードバランサを設定してそこに証明書を発行します。ロードバランサを使う場合は、証明書の費用はかかりません。
HTTPSをリッスンしてHTTPで動作しているEC2インスタンスに転送する感じで設定です。
HTTPも通しておかないとデフォルトでWordpressがhttpアクセスを強制しますので。忘れずに。

(暇があったらもっと詳しく書きます)

Wordpressのリダイレクトループ

はい、これでOKとおもいきや、
管理画面に入って、wordpressの設定で、httpをhttpsにすると
リダイレクトループが発生して開けません。

.htaccessが邪魔してるので、通してあげます。

2行追加

.htaccess
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L]

これで通常ページは見えるようになりますが、こんどは管理画面にも入れない。。。
HTTPSにしてるのにサーバーそのものはHTTPで動作してるので、HTTPSにリダイレクトしようとしてくれてますので、PHP設定で、嘘をついてあげます。$_SERVERや$_ENVでHTTPS通信してるよって。これをwordpressが参照してリダイレクトしようとするみたいなので。
これで管理画面にも入れるようになってよかったよかった。

wp-config.php
$_SERVER['HTTPS'] = 'on';
$_ENV['HTTPS'] = 'on';

ついでに、WordpressをFTP情報入れなくても直接アップデートやプラグインのインストールできるようになる設定をメモ

wp-config.php
define('FS_METHOD', 'direct'); 
#define('FS_METHOD', 'ftpsockets');
#define('FTP_HOST', 'localhost');
#define('FTP_USER', 'kusanagi');

以上

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5