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行追加
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L]
これで通常ページは見えるようになりますが、こんどは管理画面にも入れない。。。
HTTPSにしてるのにサーバーそのものはHTTPで動作してるので、HTTPSにリダイレクトしようとしてくれてますので、PHP設定で、嘘をついてあげます。$_SERVERや$_ENVでHTTPS通信してるよって。これをwordpressが参照してリダイレクトしようとするみたいなので。
これで管理画面にも入れるようになってよかったよかった。
$_SERVER['HTTPS'] = 'on';
$_ENV['HTTPS'] = 'on';
ついでに、WordpressをFTP情報入れなくても直接アップデートやプラグインのインストールできるようになる設定をメモ
define('FS_METHOD', 'direct');
#define('FS_METHOD', 'ftpsockets');
#define('FTP_HOST', 'localhost');
#define('FTP_USER', 'kusanagi');
以上