こんにちは!
最近は、レンタルサーバでも無料SSLが使えるところが増えてきましたね。
実は、AWSでも、同じように簡単にSSLを導入することができるのです。
今回は、AWS内のEC2インスタンスやS3バケット上に構築したWebサイトを、簡単にHTTPS(SSL)化する方法をお伝えします。
SSL(Secure Sockets Layer)とは、インターネット上におけるウェブブラウザとウェブサーバ間でのデータの通信を暗号化し、送受信させる仕組みのことです。
SSLは、ウェブブラウザとWebサーバとの通信を暗号化し、悪意のある第三者からの盗聴を防いだり、ウェブブラウザから送信されたデータの改ざんを防ぐ役割を持っています。
簡単に解説すると、SSL通信を実現するためには、SSL証明書をWebサーバにインストールし、それを認識させることで実現することができます。
なお、従来のウェブブラウザとウェブサーバ間でのデータの通信 (HTTP)を暗号化通信をHTTPS通信とよんでいます。
世界でウェブブラウザシェアNo.1を誇るGoogle Chromeも、バージョン68よりすべてのHTTP(非SSL)ページに対し、『保護されていない通信』という警告の表示を開始しました。
警告を出さないためには、すべてのページをSSL化する「常時SSL対応」が必要になっています。
最近のレンタルサーバは、無料SSLを実現できる「Let's Encrypt」により、簡単にSSL通信を導入することが可能です。
ところが、AWSのEC2インスタンス上に構築したWebサイトや、Amazon S3を利用して構築した静的Webサイトは、レンタルサーバのように簡単に無料SSLを導入できるわけではありません。
AWS上でSSL通信を実現するためには、以下のいずれかの設定を行う必要があります。
今回は、ACMでSSL証明書を管理するメリットとデメリットを解説します。
ACMでSSL証明書を管理するメリットは、導入までの設定が非常に簡単であることです。
ACMでSSL証明書に紐づけるコモンネーム(≒ドメイン名)と、顧問ネームの認証方法を選択するだけで、しばらくしてSSL証明書が自動発行されます。
さらに、自動更新にも対応しているので、SSL証明書を更新し忘れてしまうリスクを軽減できます。
[参考:SSL証明書の有効期限について]
https://ssl.sakura.ad.jp/column/ssl-expired/
ACMでSSL証明書を管理するデメリットとして、原則利用できるサービスがロードバランサかCloudFrontに限られてしまう点にあります。
例えば、レンタルサーバーに構築したWebサイトをSSL通信化する場合、
といった作業が必要になります。
AWSで構築されていないWebサイトに対してACMを導入するのは、コスト面で現実的ではないと思います。
今までのように非SSL通信のままWebサイトを運営すると、以下のようなリスクを抱えることになります。
現状、SSL化できていないWebサイトをお抱えの方は、この機を際にぜひSSL化されることを推奨いたします。
本件に際し、ご不明な点がございましたら、お気軽にご相談ください。