LoginSignup
0
0

More than 1 year has passed since last update.

【備忘録】Wordpress(EC2)をELB経由でHTTPS通信にするときにハマったポイント

Last updated at Posted at 2021-09-03

AWSでWordpress立ち上げようと思ってしまった

きっかけは、AWSのハンズオン
ここまで構築はなんなく出来た(資料あるし)。
「折角作った環境だから、セキュアなHTTPS通信にしよう」と意気込んだ途端、いろんな落とし穴に落とされてしまった。

このつまずいたポイントを列記した。
流れは、以下の通りである。詳しい方法はいくつかのURLを参照した。
料金が発生する作業もあるため、予め確認してほしい。

プロセス

1. VPCを作成
2. EC2を作成(Wordpressインストール)
3. RDSを作成
4. ELBを作成
5. Wordpress設定(RDS等)
6. マルチAZ化
↑ここまではAWSのハンズオンで詳しく解説されている。

7. Route53でドメイン購入(ドメイン登録は公式ドキュメント
8. ACMで証明書発行
9. ELBリスナーにHTTPSを追加
10. Route53にELBと(サブ)ドメインを紐付け(Aレコード)
11. WordpressでHTTPS設定

ハマったポイント

【★☆☆】証明書の検証中で止まる(ACMで証明書発行)

完全なぽかミス。DNSの検証を選択したワケだが、検証のためにCNAMEを登録する必要があった。
Route53でのレコードの作成を押下したら、成功にステータスが変わった。
image.png

【★★☆】HTTS通信で503 Bad Gateway(ELBリスナーにHTTPSを追加)

ELBのリスナーにHTTPSを追加するまでは良かった。
リスナーのターゲット先でポート443の通信させるように設定していたのだが、
https://~でアクセスすると503 Bad Gatewayが出てしまった。
セキュリティを見直したり、EC2の設定を見直したりしたが解消されなかった。
以下のサイトを見つけて、ようやく解決した。

HTTPS化をしたいのであればACMを使ってALBに証明書を設定すれば十分で、ALB→インスタンス間の通信はAWS内部の通信なので、そこに関しては基本的にHTTPで問題ありません。

【★☆☆】サブドメインが「保護されていない通信」(ACMで証明書発行)

AMCで発行した証明書がワイルドカードの形になっていなかったことが原因。
ドメインの追加のところで*.XXXXX.XXXの形にすれば良かった。
アスタリスクだけでは、ゾーンエイペックス(サブドメインではない、ドメイン自体)が登録されないので、一緒に登録しておく。

image.png

【★★★】 HTTPS通信で表示崩れ(WordpressでHTTPS設定)

HTTPS通信でアクセスすると表示崩れしてしまう。
検索をするとReally Simple SSLプラグインがオススメと言う記事がたくさん出てきた。
ただ、今回のようにELBで証明書を当てているWorpressではうまく行かない。
以下のサイト等を読んで、解決した。

原因は、HTTPSでアクセスしているのに、ELBのせいでHTTPでCSSやJSを読みに行ってしまうためとのこと。
以下のファイルに、ELB側でHTTPS通信があったら内部もHTTPS通信で行うように記述。

sudo vi /var/www/html/wp-config.php

以下を追記

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS'] = 'on';

Apache再起動

sudo systemctl restart httpd.service

以上をクリアし、無事に常時SSLのページを公開することができた。

0
0
0

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
0
0