[AWS] AWS Certificate Manager (ACM) で、無料のSSL/TLS証明書を発行してELBへ適用する。

こんにちは、与儀です。

AWS Certificate Manager (以下、ACM) というサービスがリリースされました。このサービスは、Amazonが発行するSSL(/TLS)証明書を無料で利用できるサービスで、現在のところ、CloudFrontとELB(Elastic Load Balancing)に対してのみ利用できます。また、現時点ではバージニア北部リージョンのみで利用可能です。

AWS公式ブログ記事の[New] AWS Certificate Manager – AWS上でSSL/TLSベースのアプリケーションを構築に、書いてある手順に従って、SSL(/TLS)証明書(以下、SSL証明書)発行とELBへの適用をやってみます。

ACMよりSSL証明書を申請・承認・取得する。

AWSサービス一覧よりACMダッシュボードを選択します。

「Get started」を選択します。(※バージニア北部リージョンが選択されていることを確認してください!)

SSL証明書を取得したいドメイン名を入力して、「Review and request」を押します。(ここでは私の私用ドメインnijikot.comで申請しています。)

入力したドメイン名に問題がなければ、そのまま「Confirm and request」を押します。

ドメインの所有者がこのSSL証明書申請をしていることを確認するために、「Continue」を押すと、ドメイン名に紐づくメールアドレスへ認証メールが送信されます。

ここではまだ未承認なので「Pending validation」となってます。

↑のメールアドレスの中で受信できるアドレスがあれば、「no-reply@certificates.amazon.com」から承認用メールが送信されているはずです。そのメール本文に承認するためのURLがありますのでクリックすると下記のようなページへ飛びます。そして、承認内容に問題がないことを確認後、「I Approve」を押すと承認されます。

承認に成功しました!

しばらくしてACMダッシュボード画面を確認すると「Issued」となり、SSL証明書が発行されたことが確認できます。

以上で、SSL証明書発行作業は完了です。

ELBを新規作成して、SSL証明書を適用する。

※こちらも同じくバージニア北部リージョンで作業をします。事前に、デフォルトVPCにてEC2インスタンスを作成、起動して、Apache等のウェブサーバをインストールしていてください。(EC2インスタンスの作成については、こちらを参照してください。[AWS] EC2インスタンスを作成してログインする。)

EC2ダッシュボードより、左列から「ロードバランサー」を選択します。(※バージニア北部リージョンが選択されていることを確認してください!)

「ロードバランサーの作成」を押します。

「ロードバランサー名」を入力して、「リスナーの設定」で、「追加」を押して、下記図のように選択、入力して、「次の手順: セキュリティグループの割り当て」を押します。

「新しいセキュリティグループを作成する」を選択して、「セキュリティグループ名」と「説明を入力」します。「ルールの追加」を押して、下記図のように選択、入力して、「次の手順: セキュリティ設定の構成」を押します。

「ステップ3: セキュリティ設定の構成」にて、先ほどACMで取得したSSL証明書を適用します。「証明書タイプ」にて、「AWS 証明書マネージャ (ACM) から、既存の証明書を選択する」を選択して、「証明書」にて先ほど作成したものが選択されていることを確認します。「暗号の選択」はデフォルトのままで、「次の手順: ヘルスチェックの設定」を押します。

デフォルトのまま、「次の手順: EC2 インスタンスの追加」を押します。
※この設定にてヘルスチェックに合格するには、事前に作成していた(WEB)サーバが80番ポートでListenして、ドキュメントルートでindex.htmlが配置されている必要があります。

事前に作成していたEC2インスタンスを選択して、「次の手順: タグの追加」を押します。

デフォルトのまま、「確認と作成」を押します。

各設定項目にて間違いがないことを確認して、「作成」を押します。

ヘルスチェックがうまくいけば、ステータスにて、「1個のうち1個のインスタンスが実行中です」となります。これで準備完了です。

ブラウザにて、「https://nijikot.com」へアクセスしてみると、無事にアクセスすることができました!
※事前にRoute 53 のDNS設定にて、nijikot.com の エイリアスAレコードとして、ELBのドメイン「ACM-TEST-ELB-******.us-east-1.elb.amazonaws.com」を設定している必要があります。

証明書の中身を見てみます。Amazonより発行されたSSL証明書であることがわかります。

有効期限は1年のようです。

以上のように、簡単にSSL証明書を取得して、ELBへ適用することができました。
Amazonが発行する無料のSSL証明書が使えるいうことで、今後はEC2でも利用できるものが出てくるかもしれませんね、楽しみです。