ヤマムギ

growing hard days.

*

WordPressをAmazon CloudFrontで配信してついでにACM(AWS Certificate Manager)を使って常時SSL化する

      2017/07/27

当サイトの500と502の発生状況がドイヒーであるとの苦情をいただきまして、Amazon CloudFrontで配信することにしました。
そのついでにACM(AWS Certificate Manager)使って常時SSL化にもしました。

こちら、WordPressサイトをCloudFrontで配信する
とこちら、WordPressとCloudFront連携時のリダイレクトループ解決方法
をものすごく参考にさせていただきました。

ACM(AWS Certificate Manager)で証明書の発行

ACM(AWS Certificate Manager)の承認メールを受け取るためにAmazon SESを設定するをご確認ください。

CloudFrontの設定

[Create Distribution]をクリックします。

[Get Started]をクリックします。

[Origin Domain Name]にCloudFrontがアクセスするドメイン名を入力します。
検索エンジンとか、外部には公表しないドメイン名をAレコードとかで設定しておいてそれを入力します。

今回常時SSLにするので、[Redirect HTTP to HTTPS]にします。
Allow HTTP Methodsは GET,HEAD,OPTIONS,PUT,POST,PATCH,DELETEにして、
Whitelist HeadersでHostをホワイトリストに追加します。
TTLはデフォルトのまま86400(24時間)にしました。

このへんはデフォルトから何も変更してません。

Alternate Domain Names(CNAMEs)に検索エンジンや、外部に公開するドメイン名を入力します。
Custome SSL CertificateでACMで発行した証明書を選択します。

ロギングを有効にして任意のS3バケットを設定しました。
作成します。

作成後、[Behaviors]-[Create Behavior]から
「/wp-admin/」と「.php」をTTL 0(キャッシュしない)の設定を作成しました。

作成後、Domain Nameに設定された ~.cloudfront.net のドメイン名をAlternate Domain Names(CNAMEs)に設定したドメイン名のCNAMEにDNSサーバで設定します。
Route 53の場合はAliaseでOKです。

あと、エラーページで500,502が運悪く発生した場合は10秒でキャッシュを削除するようにしました。

WordPressの設定

SSL対応のための設定です。

wp-config.php

上の方に以下を記入

wp-optionsテーブル

データベースのwp-optionsテーブルの
option_name in (‘siteurl’,’home’)
をSQLのupdateでhttpsのアドレスにしました。

Nginxの設定

confファイル(/etc/nginx/conf.dとかにありますが人によって設定はまちまちかと)

location/{}にhttp -> httpsのリダイレクトのために以下を追記しました。

再起動です。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , , ,

  関連記事

ブログのアーキテクチャをコストベースで見直しました

当ブログはAWSで構築しています。 アーキテクチャをコストを最重視して見直しまし …

ヤマムギ vol.24 API GatewayでREST API作成と直接DynamoDB登録のデモをしました

2週間ぶりのヤマムギ勉強会デモなのでなんだか久しぶりな気がしました。 今日はポケ …

AWS LambdaをVPC設定したときに「The provided execution role does not have permissions to call CreateNetworkInterface on EC2」

The provided execution role does not hav …

AWS Firewall Managerを設定して結果を確認

CloudFront対応のポリシーとして作成したかったので、Globalを選択し …

[JapanTaxi] Athena 指向アナリティクス 〜真面目に手を抜き価値を得よ〜(AWS Summit Tokyo 2017)を聞いてきました

Athenaのユースケースとして聞きにいきましたが、最近触ってるRe:dashも …

AWS CLIを使用したIAMロールの引き受けコマンドのメモ

よく忘れて調べるのでメモです。 公式のこちらAWS CLI を使用して IAM …

DS18B20センサー+Raspberry Piで取得した温度をAmazon Kinesis FirehoseからS3へ格納してAthenaでクエリーしたのをQuickSightで可視化する

JAWS DAYS 2017でやりますハンズオンの「[IoTハンズオン] Ras …

Application Load Balancer スティッキーセッションでどれぐらい偏るかを偶然見ました

Amazon Linux2のPHPを7.2から7.3へアップデートしましたでアッ …

Well-Architected Tool レンズヴァージョンアップ

当ブログのWell-Architectedレビューを久しぶりにやろうと思い、We …

AWS 認定クラウドプラクティショナーのサンプル問題

AWS認定クラウドプラクティショナのサンプル問題2018年9月25日現在で、英語 …