AWSの無料SSL証明書でSSL化しCDNで高速化
お名前.comのドメインを使い、AWSの無料証明書を利用してWebサイトをSSL化する方法をご紹介します。SSL証明書は無料です。今回ご紹介する方法は、AWSのRoute53を利用せず、お名前.comを使います。ドメインを複数年払いで契約している場合、ドメインのみAWSを利用していないこともあります。移行せずにお名前.comを継続で使い続け、AWSのCloud FrontとCertificate Managerを使い、WebサイトをSSL化することができます。
AWSの無料証明書
AWSでは、AWSの認証局で無料でSSL証明書を発行できます。また、自動で更新されます。通常のLinuxサーバでは、無料でSSL証明書を使う場合はLet’s Encryptを利用できます。興味がある方は以下の記事もお読みください。
AWSでは、AWS Certificate Manager (ACM)を使用することで、無料で証明書を取得できます。
AWS Certificate Managerは、インターネット上で信頼されるSSL/TLS証明書を簡単に取得、管理、および使用できるサービスです。ACMでは、自己署名証明書の作成から、公的なCAからの署名まで、様々なタイプの証明書を取得することができます。
特にAWSではAWS Certificate Manager (ACM) の Public Certificates を使用することで、無料で証明書を取得することができます。 Public Certificatesでは、Domain Validation(DV) SSL/TLS証明書を自動的に発行、管理し、公的なCAからの署名を受けることで、ドメインの所有者が証明されます。
SSL証明書の作成
Certificate Managerへアクセスします。

AWSの署名付き証明書を取得するため、リクエストを送ります。
ドメインの正当性が証明されるまで証明書は発行されません。

パブリック証明書をリクエストします。完全修飾ドメイン名には利用予定のドメインを記載します。今回の場合はお名前.comで利用しているドメインです。その他はデフォルトのままリクエストをクリックします。

リクエスト後に証明書の状況をみると、ステータスが保留でCNAME名、CNAME値が記載されています。ドメインを持っていることを証明するために、この情報をお名前.comでcnameのレコードとして登録し、保有していることを証明します。証明が完了すると「成功」と表示されます。

お名前.comでcnameの設定
お名前.comでcnameを設定して、AWSにドメインを保有していることを証明します。
DNSでCNAMEの設定を行います。
CNAMEレコードとは、別名に正式名を紐づけることができる仕組みです。この仕組みを使って証明書を保有していることを示すとは面白いですね。
お名前.comにアクセスして、ドメインタブから「ドメインのDNS設定」をクリックします。

DNSレコード設定を利用するの「設定する」ボタンをクリックします。

CNAMEレコードの追加をします。TYPEの「CNAME」を選択して、ホスト名に「CNAME名」を記載し、VALUEには「CNAME値」を記載します。追加ボタンをクリックして、確認して設定します。

登録が完了して暫くしたら、AWS側のリクエストが完了して、証明書が発行されます。
Cloud Frontで証明書を選択してWeb公開
作成した証明書をCloud Frontに設定します。
ディストリビューションを作成して、公開したWebサーバの情報があるオリジンドメインを選択します。

お名前.comのドメインを使うため代替ドメイン名(CNAME)を設定します。証明書と同じ名前にします。

SSL証明書を選択します。リクエストして作成された証明書を使うことができます。

Cloud Frontでウェブサーバを公開できているはずですので、数分待ってからディストリビューションドメイン名をコピーして、ブラウザの別タブのURLでアクセスできれば成功です。

終わりに
お名前.comのドメインを使い、SSL証明書を利用してWEBサイトをSSL化する方法をご紹介しました。証明書は無料で、自動更新もできます。さらに、Cloud Frontを使うことでAWS Shieldによるセキュリティの向上、CDNによる高速化もできました。
よろしければTwitterフォローしてください。