はじめに
httpsでWebサービスを利用するために必要なSSL証明書ですが、最近は、Let's Encryptという無料で利用できるものが存在します。
これを利用して、CloudFrontに設定するための手順を記載します。
導入までの流れ
以下の通りです。
- certbotのインストール
- 証明書の発行
- IAMへ登録
- CloudFrontへ設定
certbotのインストールや証明書の発行などは、Amazon Linux2上で行なっております。
certbotのインストール
最初に、SSL証明書に発行に必要な鍵などを作成してくれる、certbotというツールをインストールします。
これは、わかりやすくまとめてある記事がありますので、そちらを参照ください。
Amazon Linux2とLet's EncryptでSSL対応サーバを0から爆速構築
証明書の発行
以下のようなコマンドを発行します。
sudo certbot certonly --manual --domain subroq.com
コマンドの--manual
の部分を--nginx
に変更すると、勝手にnginx.conf
にSSLの記述を追記してくれてます。
もし、nginxにSSL証明書を設定する場合は、変更してみてください。
また、--domain subroq.com
の部分は、複数指定することが可能です。
例えば、
sudo certbot certonly --manual --domain subroq.com --domain console.subroq.com
のように、サブドメインなしとサブドメイン付きの証明書を一度に発行することが可能です。
IAMへ登録
certbotのコマンドを実行すると、/etc/letsencrypt/live/
というフォルダが作成され、その配下に指定したドメイン毎にフォルダと必要な鍵等々が作成されます。
今回だと、/etc/letsencrypt/live/subroq.com
というフォルダが作成されました。
次にこれらをIAMに登録します。
コマンドは、以下の通りです。
sudo aws iam upload-server-certificate --server-certificate-name subroq.com-ssl \
--certificate-body file:///etc/letsencrypt/live/subroq.com/cert.pem \
--private-key file:///etc/letsencrypt/live/subroq.com/privkey.pem \
--certificate-chain file:///etc/letsencrypt/live/subroq.com/chain.pem \
--path /cloudfront/subroq/
aws
を利用するので、必ずインストールしておいてください。
CloudFrontへ設定
最後にアップロードした証明書をCloudFrontに設定します。
まずは、対象のDistributionsを選択します。
次に、そのDistributionsを編集します。
上記、画像のCustom SSL Certificate (example.com)を選択すると、今回追加した証明書が表示されます。
ここに表示される名前は、先ほどawsコマンド実行時に、指定した--server-certificate-name
の値です。
それを選択することで無事設定が完了です。
設定が反映されるまでに10分程度?かかるらしいです。
最後に
昔は、SSL証明書にお金がかかっていましたが、このようなサービスが登場し、気軽にhttps化できるようになりました。
Chromeブラウザなどでは、httpsでなければCookieなどの制御がうまくいかないこともあり、httpsの利用は必須になっているため、ありがたいです。
Subroqは、企業のフリーランスエンジニアの採用や活用を支援するサービスを提供しております。また、フリーランスエンジニア向けの記事も書いておりますので、興味ある方は是非、ご一読いただければと思います。