この記事を三行にまとめると
ELBでSSLを使ってみたいと思いますELTのfragileでも聴きながら作成すればすぐさ
こりゃあ便利だぞい
SSLの証明書を発行できるサービスと言えば、グローバルサインとかRapidSSLとかいろいろありますけれど、どれもそれなりのお金がかかりますね。
無料で使用する方法もいくつかありますが(オレオレ証明書を使うとか)、AWSを利用している場合、無料で、しかも簡単にSSL証明書を利用できる機能があるので、それ使えばコストはかかりません。
ただしAWSのELBおよびCloudFrontでのみ、利用が可能という条件はつきます。EC2に直接インストールすることは、今はできないみたい。ついでに、AWS以外のサーバーで使うこともできません。
僕はCloudFrontってのはほとんど触ったことがないんで、今日はELBでSSLを使ってみたいと思います。
ACMのページに行くと「証明書のリクエスト」ってのがあるんで、そこで証明書を利用したいドメインを登録します。
あかつきのお宿だったら「norm-nois.com」になりますね。「*.norm-nois.com」みたく、ワイルドカードの登録も可能です。
確認とリクエストボタンを押すと、認証用のメールが飛んでくるので、そのメール本文の中にあるURLをクリックすれば、証明書が発行されます。
ちなみに認証用のメールは、対象ドメインのWhois情報に登録されているメールアドレスに飛ぶようです。AWSのアカウントに飛ぶわけではないので注意。ただ僕の場合は、WhoisもAWSのアカウントも同じメールアドレスだったから、これについては正確な検証ができてないっす。すまんっす。
Whoisのメールアドレス以外にも「admin@ドメイン」「postmaster@ドメイン」「webmaster@ドメイン」などにもメールが飛ぶようです。内容は一緒なので、一通だけ受け取れれば問題はないです。
AWSのSESを使って認証メールを受け取る方法もあるようですが、僕はそれやらなかったんで、今回は省略です。
ロードバランサーが作成できたら、リスナーの編集からSSL証明書の設定ができます。
SSL証明書の変更ボタンを押すと、証明書の選択画面が出てきます。
ここにある「AWS 証明書マネージャ (ACM) から、既存の証明書を選択する」ってのを選ぶと、先ほど発行した証明書が選べるようになっているので、あとは保存するだけ。
設定が完了したら、httpsでURLにアクセスしてみましょう。無事にSSLが適用されているはず。
「Create Record Set」でAレコードをセットする時、AliasをYesにすると、「Alias Target」という入力項目が出てくるので、そこに設定したいロードバランサーのDNS名を入力すれば、ロードバランサーにドメインが当たります。
ACMなら、更新も自動でやってくれるっぽいので、うっかり期限が切れてしまったーなんてこともなくなります。こりゃあ便利だぞい。
ただし、発行できる証明書のタイプは、ドメイン認証タイプ(DV SSL)のみのようです。グローバルサインで言うところの、クイック認証SSLに該当するものですかね。企業認証用SSLやEVタイプは取得できないようです。そっちの証明書が欲しい場合は、別のサービスを利用するしかないみたいですね。いずれは使えるようになるのかもしれません。
他のサーバーで使うことはできませんが、そもそもACMを使おうとしてる時点で、サーバーもAWSを使う場合がほとんどでしょうし、あんま気にすることはないでしょう。
しかし、AWSはどんどんいろんなことができるようになって行くな……はっきり言って、全然使いこなせません。スマホと一緒だな。新しい機能がどんどん追加されるのは良いのだけど、ほとんど使えねーっつー話。
無料で使用する方法もいくつかありますが(オレオレ証明書を使うとか)、AWSを利用している場合、無料で、しかも簡単にSSL証明書を利用できる機能があるので、それ使えばコストはかかりません。
ただしAWSのELBおよびCloudFrontでのみ、利用が可能という条件はつきます。EC2に直接インストールすることは、今はできないみたい。ついでに、AWS以外のサーバーで使うこともできません。
僕はCloudFrontってのはほとんど触ったことがないんで、今日はELBでSSLを使ってみたいと思います。
証明書の発行
SSL証明書の発行は、Certification Manager(以下ACM)ってところで行います。ACMのページに行くと「証明書のリクエスト」ってのがあるんで、そこで証明書を利用したいドメインを登録します。
あかつきのお宿だったら「norm-nois.com」になりますね。「*.norm-nois.com」みたく、ワイルドカードの登録も可能です。
確認とリクエストボタンを押すと、認証用のメールが飛んでくるので、そのメール本文の中にあるURLをクリックすれば、証明書が発行されます。
ちなみに認証用のメールは、対象ドメインのWhois情報に登録されているメールアドレスに飛ぶようです。AWSのアカウントに飛ぶわけではないので注意。ただ僕の場合は、WhoisもAWSのアカウントも同じメールアドレスだったから、これについては正確な検証ができてないっす。すまんっす。
Whoisのメールアドレス以外にも「admin@ドメイン」「postmaster@ドメイン」「webmaster@ドメイン」などにもメールが飛ぶようです。内容は一緒なので、一通だけ受け取れれば問題はないです。
AWSのSESを使って認証メールを受け取る方法もあるようですが、僕はそれやらなかったんで、今回は省略です。
ELBに証明書をインストール
ELBでロードバランサーの作成が済んでいる前提での話になるので、作成してない人は、まずロードバランサーを作成してください。ロードバランサーの作成についてはここでは省略します。大丈夫、難しくないから。ELTのfragileでも聴きながら作成すればすぐさ。ロードバランサーが作成できたら、リスナーの編集からSSL証明書の設定ができます。
SSL証明書の変更ボタンを押すと、証明書の選択画面が出てきます。
ここにある「AWS 証明書マネージャ (ACM) から、既存の証明書を選択する」ってのを選ぶと、先ほど発行した証明書が選べるようになっているので、あとは保存するだけ。
設定が完了したら、httpsでURLにアクセスしてみましょう。無事にSSLが適用されているはず。
おまけ
ELBにドメインを割り当てるのは、Route53で行います。「Create Record Set」でAレコードをセットする時、AliasをYesにすると、「Alias Target」という入力項目が出てくるので、そこに設定したいロードバランサーのDNS名を入力すれば、ロードバランサーにドメインが当たります。
ACMなら、更新も自動でやってくれるっぽいので、うっかり期限が切れてしまったーなんてこともなくなります。こりゃあ便利だぞい。
ただし、発行できる証明書のタイプは、ドメイン認証タイプ(DV SSL)のみのようです。グローバルサインで言うところの、クイック認証SSLに該当するものですかね。企業認証用SSLやEVタイプは取得できないようです。そっちの証明書が欲しい場合は、別のサービスを利用するしかないみたいですね。いずれは使えるようになるのかもしれません。
他のサーバーで使うことはできませんが、そもそもACMを使おうとしてる時点で、サーバーもAWSを使う場合がほとんどでしょうし、あんま気にすることはないでしょう。
しかし、AWSはどんどんいろんなことができるようになって行くな……はっきり言って、全然使いこなせません。スマホと一緒だな。新しい機能がどんどん追加されるのは良いのだけど、ほとんど使えねーっつー話。