2016/02/14

AWSでELB(Elastic Load Balancing)のSSL証明書を更新しようとしたら…
ロードバランサーの証明書の設定中にエラーが発生しました
Server Certificate not found for the key:
などというメッセージが表示されてしまい、少し無駄に時間をかけてしまうはめになったので対応方法をご紹介。
これまで何度もインポートによるELBのSSL証明書更新はおこなってきたのですが、今年、更新しようとしたら上記のようなメッセージが出ました。
「今までこんなことなかったんだけど、なんだろ?」
実は、上記のメッセージは出るものの、インポートはできているようで、IAM(Identity and Access Management)にはインポートしたつもりのエントリが見えます。
ただ、心情的に上記のようなメッセージが出たエントリを使うのはちょっと気持ちが悪い。
というわけで調査。
表示されたメッセージでググってみたのですが、「CLIを使ってインポートせよ」という情報ばかり。
「えー、今までできてたのに、ここに来てCLIを使えってのはおかしいぞ」
ひとしきり腕を組んで考えたみたところ
「あれ?そういや、ACM(Amazon Certificate Manager) ってこういうことに使うのでは?」
そうです。
どうやら、これまでIAMでおこなっていたELBのSSL証明書管理は、今後、ACMでおこなうのが正解のようです。
以下にも「証明書を ACM にインポートすることをお勧めします。」という記載を発見。
サーバー証明書の使用
ということで、ACMを使ってみることに。
証明書のエントリのページで「証明書のインポート」をクリック。
「証明書のインポート」になるので、鍵・証明書・中間CAをそれぞれコピペして「レビューとインポート」をクリック。
ここで、早速、ELBのほうに行きたいところですが、その前に、インポートした証明書の「識別子」を確認してください。
インポートした証明書のエントリを展開して詳細画面を出します。
詳細画面の「識別子」をメモに控えます。
画像上は、最後の4文字しか見えていませんが実際は32文字になってます。
識別子を控えたら、いよいよELBに適用です。
これまでと同じように、ロードバランサーの画面から、SSL証明書の「変更」をクリックします。
ここで「AWS 証明書マネージャ(ACM)から、既存の証明書を選択する」を選択し、「修了書」から該当のエントリを選択して「保存」をクリックします。
ここで「識別子」を控えていたことが役に立ちます。
これで、ELBの証明書の更新は終了です。
念のため、再度、ACMのエントリ画面に戻ると「使用中?」の箇所が「いいえ」から「はい」に変わっていることが確認できます。
これまで IAM で管理していた際は、不要になった証明書の削除がマネジメントコンソール画面からはできず、CLIのみだったのですが、ACM だとマネジメントコンソール画面上から削除できるようです。
管理しやすくなった気がしますが、どうせならメッセージもそれなりのものを出してACMに誘導して欲しいなぁ。
とりあえず、まだあまり情報がなさそうなので、どなたかの役に立てば幸いです。