前提
ALBの下にEC2のWebサーバが存在。
オリジナルドメインでのアクセスが可能な状態。下記記事の続きになります。
やってみる
ACM証明書取得
ACMサービスないで、パブリック証明書のリクエスト。
検証方法はDNS検証。
リクエスト後、証明書内のドメインメニューにて、「Route53でレコードを作成」をクリック
レコードを作成
証明書のステータスが発行済みとなった。
Route53に検証用のCNAMEが追加された。
HTTPSリスナー追加
LBのターゲットグループにHTTPSのリスナーを追加
ACM証明書は事前に作成したものを適用。
ALBのSG変更
ALBのSGにHTTPSを追加。
これで、HTTPS、HTTP両方によるオリジナルドメインへのアクセスが可能になる。
画面崩れの対応
WordPressの仕様による画面崩れが発生するのでその対応。
1、2号機ともに赤文字部分を追加
#設定フィイルを開く
$ sudo vi /var/www/html/wp-config.php
#赤文字部分を追加
80 * @link https://wordpress.org/documentation/article/debugging-in-wordpress/
81 */
82 define( 'WP_DEBUG', false );
83
84 if($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
85 $_SERVER['HTTPS'] = 'on';
86 $_ENV['HTTPS'] = 'on';
87 }
88
89 /* Add any custom values between this line and the "stop editing" line. */
90
91
92
93 /* That's all, stop editing! Happy publishing. */
これで画面崩れも解消。
これ以外にも、RDS側にIPアドレスを保持しており、そのIPがアクセス元と異なる場合にも画面崩れは発生する。サイトへのアクセス自体もかなり遅くなる。
その場合は、以下で修正
$ mysql> use DB名
$ mysql> select * from wp_options where option_name = 'siteurl';
$ mysql> select * from wp_options where option_name = 'home';
一旦これで確認。固定IPで設定してあるケースがよくある。
その場合は以下で修正
update wp_options set option_value = 'ドメイン・DNS名・IPアドレス・' where option_name = 'siteurl';
update wp_options set option_value = 'ドメイン・DNS名・IPアドレス' where option_name = 'home';
やってみる。
①DBにアクセス
MySQL [wp_db]> use wp_db;
Database changed
②設定を確認
※固定IPが設定されていた。。
MySQL [wp_db]> select * from wp_options where option_name = 'siteurl';
+-----------+-------------+-----------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+-----------------------+----------+
| 1 | siteurl | http://13.115.141.201 | yes |
+-----------+-------------+-----------------------+----------+
1 row in set (0.00 sec)
MySQL [wp_db]> select * from wp_options where option_name = 'home';
+-----------+-------------+-----------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+-----------------------+----------+
| 2 | home | http://13.115.141.201 | yes |
+-----------+-------------+-----------------------+----------+
1 row in set (0.00 sec)
③設定値を更新する
MySQL [wp_db]> update wp_options set option_value = 'my-elb-748191722.ap-northeast-1.elb.amazonaws.com' where option_name = 'siteurl';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MySQL [wp_db]> update wp_options set option_value = 'my-elb-748191722.ap-northeast-1.elb.amazonaws.com' where option_name = 'home';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MySQL [wp_db]>
以下を参考にした。
AWSとWordpress使っていてレイアウトが突然崩れた時の対処 - Qiita
Wordpressを使っているとレイアウトが崩れてしまうことがあります。#症状http://サイトのURL/ディレクトリ/wp-login.phpでログイン画面にアクセスしてみると、結構待たさ…
HTTPアクセス設定削除
LBのHTTPリスナーと、ALB用のSGからHTTPを削除。