【AWS】【Let's Encrypt】Let's Encryptを使っての証明書発行をAWS Certificate Managerにして、お名前.comに設定する
はじめに
勉強がてらSPAで作成したWebサービスを作っており ドメインはお名前.comで取得、証明書を作れるLet's Encryptを使っていました。 とても便利で1年半ぐらいは使わせてもらっていました。
しかし、最近になり証明書更新のコマンドが動かなり
3ヶ月に1回更新するのにも疲れたのでAWS Certificate Manager(以下、ACM)を使ってみることにしました。
環境
前提条件
- AWSのアカウントがあり、ACMを適用できるサービスを使用している
- 今回は、CloudFrontに証明書を設定します。
- AWS以外でドメインを取得している。
- タイトル通りお名前.comに対して操作をしますが基本一緒だと思います。
- Route53を使ってDNS登録をしている。
- この運用をしていたからであり初めて設定する場合、登録していなくても問題ありません。
対応する前の状態
※本当はAレコードも設定してあります。 ※NSレコードの内容をお名前.comに登録してありました。
やり方
証明書の発行
ACMに移動して「証明書のリクエスト」を押下します。
そうするとドメイン名を入力する画面が出てくるので入力します。
※今回は説明用にsample-acm.com
としています。
ここでポイントなのが、ワイルドカードドメイン名とワイルドカードがないドメイン名を両方設定しておくことです。
これをやることにより
上記のようなURLがすべて適用されるようになります。
そして、次に行くと
選択肢が2つあり、取得したドメインでメールを受け取る設定をしていなかったので「DNSの検証」を選択しました。
なお、DNSの検証は2017年11月からできた機能のようでAWSはこちらを推奨しているようです。
選択した状態で次に行き、確定とリクエストをします。 そうすると検証という画面になり、CNAMEレコードが表示されます。
このCNAMEレコードをお名前.comのDNS設定に転記します。
お名前.comの管理ページから下記ページに遷移して
以下を選択します。
次のページで入力するところがあるので、入力していきます。
※画面下に「DNSレコード設定用ネームサーバー変更確認」とありますが
チェックしてから次に進んで設定してください。
これでお名前.com側の設定が終わりで数十分待つと、ACM側が以下のようになります。
次にACMで作成したものをCloudFrontに設定します。
これで準備が完了しました。
しばらくしてサイトにアクセスするとSSLが有効なものになっているはずです。
そして証明書の内容を確認してみます。
ちゃんとAmazonが発行した証明書になっています。
まとめ
今までLet's Encryptでやっていたのは何だったのか・・・
やはり、AWSはすごい!と思わされる内容でした。
AWSを使ってやる場合、ACMを使っての証明書発行が1番速く確実だと思います。