ELBにACM証明書を適用してSSL化する

AWS

前提

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を削除。

タイトルとURLをコピーしました