AWS Certificate Manager で 無料の SSL サーバ証明書を取得して Amazon S3 で運用中のブログを HTTPS 化してみた
はじめに
今回は Amazon S3 で運用していたブログ(静的ウェブサイト)を HTTPS 化する際のやり方と注意点についてまとめておきたいと思います。
HTTPS 化する目的
一番の目的は Google の評価を上げるためです(HTTPS ページが優先的にインデックスに登録されるようになります)。今まで安い SSL 証明書でも年間 3,000円程度はしていましたが、AWSの Certificate Manager であれば無料で SSL 証明書を取得できるようになり、これを機に SSL 化することにしました。また、副次的ですが CloudFront で SSL 設定を行うことで HTTP/2 が利用できるようになり、パフォーマンスの向上も見込めます。
- HTTPS でサイトを保護
- HSTS (HTTP Strict Transport Security) の導入
- [AWS Certificate Manager]東京でも無料でSSL証明書が使用可能になりました!
設定方法
各種設定方法は以下のページを参考に設定していきます。この記事では細かい設定方法等については省きます。
- Amazon S3 を Origin とし、CloudFront から配信する:
Amazon S3 での CloudFront の使用 - AWS Certificate Manager で無料の SSL サーバ証明書:
[ACM] AWS Certificate Manager 無料のサーバ証明書でCloudFrontをHTTPS化してみた
大まかな流れ
HTTPS 化するまでの大まかな流れはこのようになります。
- AWS Certificate Manager で SSL サーバ証明書を取得する
- 申請と承認(whois の登録メールアドレス宛に確認メールが送付される)
- 承認後、数分で証明書を利用可能に
- CloudFront のディストリビューション作成
- Route53 で対象ドメインの Alias を設定する
HTTPS 化するための条件
Amazon S3 で運用していたウェブサイトを HTTPS 化するためにはいくつかの条件があります。
- CloudFront を利用しなければならない(Amazon S3 には SSL サーバ証明書を設定できない)
- AWS Certificate Manager で発行する証明書は US East (N. Virginia) リージョン で作成しなければならない(認証の都合)
HTTPS 化するための注意点
詳しい説明はAmazon S3 での CloudFront の使用を読んでもらうのが早いと思いますが Static Website Hosting を行っている場合、Origin の設定方法が若干異なります。ポイントはこの2つです。
- Origin の設定に Static Website Hosting 時の Endpoint を指定する
- Origin Path の設定は不要
この設定を間違えると Origin のファイルにアクセスできず、AccessDenied
の状態になってしまいます。また、Webサイト事態もCSSやJavaScript等のパスをHTTPSで読み込めるよう調整が必要です。
HTTP/2
HTTP/2 でアクセスできているか試すには Google Chrome の拡張機能 HTTP/2 and SPDY indicator を利用します。HTTP/2 でアクセスしている場合はアイコンが青くなります。
終わりに
これで HTTPS 化の作業は終わりです。無料で HTTPS 化できるなんて助かりますね。