こんにちは、与儀です。
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証明書を申請・承認・取得する。
「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でも利用できるものが出てくるかもしれませんね、楽しみです。