素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

IT

【無料SSL証明書】AWSでHTTPS通信を取得してCloudFrontに設定してみよう!【WordPress】

投稿日: 2018年5月8日
最終更新日:

スポンサーリンク

336×280




おさらい

S3経由でWebサイト公開まで

前回までの記事では、StaticPressでHTML化し、

StaticPressS3でS3バケットに転送し、

CloudFrontとRoute53を使って独自ドメインでアクセス出来るところまで設定をしました。

更にクオリティをあげたい

SSL/HTTPS化

ひとまず、独自ドメインでのアクセスも設定出来たのでこのままでも良さそうなのですが、Webサイトとして更にクオリティをあげるにはSSL証明書を取得して、サイトをHTTPS化する必要があります。

また、天下のGoogle様も、今後HTTPS化されていないサイトをGoogleChromeで閲覧する場合は警告を出すようにしちゃうよ☆と、宣言しちゃうほどSSL化の必要性が上がってきています。

また、HTTPS化するのとしないのとではSEO効果としても差が出てくるようになっているようです。

SSL?

SSLとはSecure Sockets Layerの略で、ブラウザでアクセスしようとしているサイトが実在していることを証明し、WebブラウザとWebサーバ間でSSL暗号化通信を行う事が保障されているよ!という、安全性を保管する仕組みのことです。
そして、SSL証明書とはその仕組みが適用されていることを証明してくれる電子証明書の事です。

基本的には有償で発行する必要がありますが、AWS Certificate Manageというサービスを使う事でAWS内で利用可能なSSL証明書を無料で発行する事が出来ます。

また、CloudFrontにそのSSL証明書を設定する事も可能ですので、結果的にWordpressのサイトを無料でHTTPS通信化をする事が可能なのです!!(ドヤァ)

HTTPS?

まず、HTTPとはHyper Text Transfer Protocolの略で、Webページを閲覧する際に利用される通信方式の事を指します。

そして、HTTPSは更に進化したHyper Text Transfer Protocol Secureの略となっています。
これは、SSLを利用したHTTPS通信の事を指しています。
SSLを利用する事で通信内容を暗号化するので、安全にWeb情報のやりとりを行うことができます。万が一通信経路から情報が抜き取られたとしても、暗号化されているので内容を判別することは極めて難しいでしょう。

では、次にAWSを使ってSLL/HTTPS化するまでの手順をご紹介致します。

ちょっと難しいですが、頑張ってみましょう!

手順

スポンサーリンク

336×280




前提

Point

  • S3設定済み
  • CloudFront設定済み
  • Route53設定済み

【準備】S3側

SES用のバケット作成

まずは、後述のSESで使うバケットを一つ用意しておきましょう。
設定はデフォルトのままで良いので手順は割愛しますが、バケットポリシー以下のコードを元に値を適時変更して設定しておいてください。


【準備】SES側

ドメインの確認

AWS Certificate ManageでSSL証明書を発行する上でメール検証があります。
メールサーバー等がない場合はこのメールを受け取る事が出来ません。

そこで、今回はAWSSimple Email Serviceというサービスを使ってメールを受信出来るようにしてみます。

AWSのマネジメントコンソールにログインしたら、上部サービスメニューカスタマーエンゲージメント>Simple Email Serviceを選択します。

次に、右上のリージョンオレゴンに設定し、左部メニューDomainsを選び、Verify a New Domainボタンをクリックします。

すると、以下のようなダイアログが表示されるので、SSL証明書を取得したいドメインを入力し、Verify This Domainボタンをクリックします。

次に以下の画面が表示されます。
いろいろ表示されていますが、今回はRoute53にお名前.comで取得したドメインを設定しているのでUse Route 53ボタンをクリックしましょう。

すると、続けて以下のダイアログが表示されるのでEmail Receving Recordにチェックを入れ、 Create Record Setsボタンをクリックしましょう。

以下のようにpending verifycationとなるので、verifiedになるまで気長に待ちましょう。

Rule Setsの作成

次に、SESのRule Setsを設定します。
左部メニューEmail Receiving>Rule Setsを選び、Create Receipt Ruleボタンをクリックします。

Recipientsの設定画面が開かれますが、ここはそのままで良いのでNext Stepボタンをクリックしましょう。

次にActionsの設定画面が開かれます。
ここでは先ほど作成したS3バケットを選択しNext Stepボタンをクリックしましょう。

次にRule Detailsの設定画面が開かれます。
ここではルールの名称を入力しその他は特にいじらずにNext Stepボタンをクリックします。

確認画面が表示されるので、問題が無ければCreate Ruleボタンをクリックします。

Ruleが作成されたら、対象のS3バケットに以下のようなファイルが作成されていればSESの設定は完了です。

受信ドメインの設定

次に実際に受信するアドレスを設定します。
作成したRuleをクリックします。

そして、以下のRecipientを追加し、Save Ruleボタンをクリックします。


これでSESの設定は全て完了です。

【準備】AWS Certificate Manage側

SSL証明書の発行

次に、AWS Certificate ManageにてSSL証明書を発行します。
上部サービスメニューからセキュリティ、アイデンティティ、 コンプライアンス>Certificate Manageを選択します。

次に、リージョンをバージニア北部に設定し、証明書のリクエストボタンをクリックします。

次の画面では、初期設定のままで良いので証明書のリクエストボタンをクリックします。

するとまずはドメイン名の追加画面が表示されます。
SSL証明書を取得したいドメインを入力し次へボタンをクリックします。

次に検証方法の選択画面が表示されます。
ここは先ほど作成したSESにてメール受信を行いたいので、Eメールの検証にチェックを入れ確認ボタンをクリックします。

すると確認とリクエスト画面が表示されますので、内容に問題が無ければ確定とリクエストボタンをクリックします。

検証画面が表示されるので、そのまま続行ボタンをクリックします。

次の画面では、以下のように表示されています。
先ほどのSES用のS3バケットにメールが届いているはずですので確認してみましょう。

検証メールの確認

S3バケットを見てみると以下のようなランダム文字列?のファイルが作成されていると思います。
このままでは内容を確認出来ないのでダウンロードボタンをクリックしましょう。

ダウンロードしたファイルを開くと、長々とよくわからないテキストが記載されていますが、中段あたりhttps://us-east-1.certificates.amazon.com/approvals?code=から始まるURLをブラウザに入力して開きましょう。

すると以下のような画面が表示されるので、approveボタンをクリックしましょう。

Success画面が表示されれば検証完了です。

これで証明書のステータス発行済みに変わっていると思います。

【準備】CloudFront側

SSL証明書の設定

では、次にCloudFront発行したSSL証明書を設定してみましょう。
上部サービスメニューからネットワーキング&コンテンツ配信>CloudFrontを選択します。

次にSSL証明書を設定したいDistributionを選択します。

そしてGeneralタブを選びEditボタンをクリックします。

中段あたりSSL Certificate項目Custom SSL Certificate (example.com):にチェックを入れ、プルダウンに先ほど取得したSSL証明書が選択出来るようになっているのでそちらを選択をしてページ下部Yes, Editボタンをクリックします。

HTTPSの有効化

次に、サイトへの通信をHTTPS通信のみにしましょう。
Behaviorsタブを選択し、対象のBehaviorにチェックを入れEditボタンをクリックします。

Viewer Protocol PolicyRedirect HTTP to HTTPSにチェックを入れ、ページ下部Yes, Editボタンをクリックします。

これで設定は終わりです。お疲れ様でした。。。orz

あとは、変更したCloudFrontのDistributionのStatusDeployedになるまで気長に待ちましょう。(結構かかります。)

確認

スポンサーリンク

336×280




では、実際にブラウザでアクセスしてみましょう。

正常にHTTPS通信になってますね!
http://~でアクセスしても自動でHTTPSにリダイレクトされるのも確認出来ると思います!
※作業の途中でテーマを変えたので別記事のレイアウトと変わっています

終わりに

以上のようにAWSサービス群を利用してHTTPS通信のサイトの作成が出来ました♪

今までの他の作業と比べてちょっと大変でしたが、その分動作確認が出来た時は感無量です・・・!!!笑

これでとりあえずWordPress + StaticPress(S3) + S3バケット + CloudFront + Route53 + Certificate Manage(SSL)でサイト運営をする準備は整いましたので

あとは、以下の細かい調整をする必要がありますが、とりあえずは急ぐ必要は無いのでまた別の記事にて紹介しようと思います。

Point

  • 更新時のキャッシュ対策
  • 不要ファイルの転送制限

記事を執筆した際には、そちらもご覧頂ければなと思います♪

336×280




336×280




CATEGORIES & TAGS

IT, , , , , , , ,

blogenist

Author: blogenist