CertificateManager

AWSのCertificate ManagerでSSL証明書を発行する方法

AWSのCertificate Manager(ACM)ならばCloudFrontやELBで使用するためのSSL(TLS)証明書を無料で発行することができます(ダウンロードして他のサーバーで使うといった用途はNG。EC2にインストールして使うのもダメ)。

しかもその証明書を現在進行形で使っているのならば無条件で更新されますので、期限が過ぎて証明書エラー→ブラウザのアドレスバー真っ赤という事態も避けることが出来ます。

発行できる証明書はDV証明書ですので企業で本格的に使うには向きませんが、個人開発で使う分には全く問題ありません(他社で買ったEV証明書などをCertificate Managerにアップロードして管理も可能)。今回はその発行の方法をご紹介いたします。

リージョンは当面N.Versiniaで

まずリージョンですが、Tokyoリージョンでも発行は問題なくできます。しかしCloudFrontなどでその証明書を使う場合、現状はN.Versiniaで発行したものでないと使えない仕様になっております。なので後の事を考えた場合、リージョンはN.Versiniaで発行しましょう。

AWS region

Route53で発行しているドメインでなくてもOK。ただしDNSレコードをいじれる権限は必要

証明書を発行する場合、そのドメインはAWSのRoute53で買ったものでなくても発行できます(なんて良心的なのかしら)。ただし、そのドメインのDNSレコードを編集する権限が必要になります。

メールによる認証もできますが、その場合admin@やwebmaster@から始まるメールアドレスを取得している必要があります。何よりもメールサーバーを立てるのは面倒くさいものです。特段の事情が無い限りDNS認証を利用しましょう。

コンソール画面から難なく発行手続きできる

サービス一覧からSecurity, Identity & Complianceの中にあるCertificate Managerを選択します。”Request a certificate”から”Request a public certificate”を選択し進みます。するとドメインを入力する画面に到達します。

onakin_cert

ACMはワイルドカード証明書発行にも対応しています。api.example.comやadmin.example.comといった証明書をいちいち取得するのも面倒ですし、ワイルドカードの証明書も同時に取っておいた方が吉でしょう。ベタなexample.comの証明書に加え、*.example.comのワイルドカード証明書も取るように設定します。

次に認証方法を選択する画面に移ります。

certificate manager2

ここはDNSによる認証を選択します。

確認画面から”Comform and request”ボタンを押して確定です。

Route53でDNSレコードを設定していれば一発で設定終了

最終画面で、DNSレコードに記載すべき値が表示されます。もしもRoute53のDNSレコードを利用しているのならば、”create record in Route53″ボタンを押せば一発で設定できます。なんて楽なんでしょう!

cm3

しばらくしてStatusがIssuedになっていれば手続き完了です。

cm4

ドメイン取得もSSL証明書も全てAWS内で、コンソール画面からポッチっと出来るので、誰かにインフラの管理を丸投げしているかの気にすらなります。確かにクラウドは少々お値段が高い(DropboxもAWSから自社インフラに移行したくらい)ですが、インフラからコーディングまで全てを手がけている個人開発者には強い見方であります。

今後もAWSを使い倒していきたいです。