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
上の方に以下を記入
1 2 3 |
$_SERVER['HTTPS'] = 'on'; $_ENV['HTTPS'] = 'on'; |
wp-optionsテーブル
データベースのwp-optionsテーブルの
option_name in (‘siteurl’,’home’)
をSQLのupdateでhttpsのアドレスにしました。
Nginxの設定
confファイル(/etc/nginx/conf.dとかにありますが人によって設定はまちまちかと)
の
location/{}にhttp -> httpsのリダイレクトのために以下を追記しました。
1 2 3 4 |
if ($http_x_forwarded_proto = "http") { return 301 https://yourdomain.com$request_uri; } |
再起動です。
1 2 |
$ sudo service nginx restart |
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

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

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

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

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


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
AWS WAFの個別ルールを設定する
Web ACLを選択して、[Add my own rules and rule …
-
-
AWS Organizationsで新規メンバー登録したアカウントを組織から離して解約
2021年現在ではこの方法しかないと認識していますので書き残します。 そのうち新 …
-
-
Amazon Linux2のPHPを7.2から7.3へアップデートしました
WordPressのサイトヘルスの推奨に従って使っていないテーマを削除したの推奨 …
-
-
DS18B20センサー+Raspberry Piで取得した温度をAmazon Kinesis FirehoseからS3へ格納してAthenaでクエリーしたのをQuickSightで可視化する
JAWS DAYS 2017でやりますハンズオンの「[IoTハンズオン] Ras …
-
-
S3 VPCエンドポイント設定前と設定後を確認
S3のVPCエンドポイントを設定した際に、S3バケットのAPIエンドポイントへの …
-
-
「雲勉 第1回【勉強会:新技術好き!】AWSマネージドサービス勉強会」に行ってきました
「雲勉 第1回【勉強会:新技術好き!】AWSマネージドサービス勉強会」に行ってき …
-
-
AWSセルフマネージドAD環境にリモートデスクトップで接続
AWSクイックスタートのActive Directory Domain Serv …
-
-
ハンズオン目的アカウントに設定しているSCPポリシー
AWS Organizationsでハンズオン目的のアカウントに設定しているSC …
-
-
AWS CodeBuildのチュートリアルをやってみました
こちらユーザーガイドの最初の方にあるチュートリアルです。 コンソールを使用した …
-
-
5分でAlexaスキルを作る
「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Micr …