Certificate Managerにssl証明書をインポートする

前回、オンプレのwordpressのコンテンツをCloud Frontにキャッシュさせるところまでやりました。その時、ssl証明書はデフォルトのままにしていたので、独自ドメインでアクセス可能にした場合、証明書エラーが発生して危険なサイト扱いになっていると思います。
今回は、ssl証明書を設定して証明書エラーを発生させなくします。
証明書管理にはCertificate Managerを使用します。Cloud Frontからはバージニア北部リージョンのCertificate Managerしか参照できないので、忘れずに切り替えておきましょう。

独自ドメインを持っている場合

独自ドメインを持っていて、ネイキッドドメインにアクセス可能な場合(hogehoge.comとかのレベルで所有している場合)は、Certificate Managerで証明書を発行でき、更新も自動でやってくれ更に無料なので、Certificate Managerから証明書をリクエストを選択して発行しましょう。
ドメインの所有者確認が面倒臭そうですが、手順に従えば問題ないでしょう。
私は独自ドメインを持っていないので、手順は省略します。(いつか独自ドメインに移行したい・・・)

独自ドメインを持っていない場合

私のようにDDNSサービスとかを使用していて、独自ドメインを持っていない場合はCertificate Managerで証明書を発行できません。
その場合は自分で証明書を取得して、それをインポートしましょう。
証明書の取得については、こちらの記事で無料のLet’s Encryptoの証明書発行について紹介しています。
今回はLet’s Encryptoで証明書発行し、それをインポートする前提で進めます。また、残念ですがcertbot-autoは私の環境では使用できないため、certbotでの対応になります。恐らくcertbot-autoの方が簡単なため、そちらを使用出来る方はLet’s Encryptoのページ等を参考に実行して下さい。

証明書を再発行する

Cloud Frontでalternativenameを設定してCNAME対応をした場合、サブドメイン名が二つ必要になります。

  • ユーザーにアクセスさせたいURL(Cloud Frontのalternativename)の証明書
  • originのURLの証明書(Cloud Frontからアクセスする際に証明書が正しくないとエラーになるため
  • なので、現在一つのドメインの証明書しか対応していない場合は、再発行します。
    単純にcertbotで再度証明書発行コマンドを実行して上書きすれば問題無さそうに見えたのですが、私は何故かそれだと新しく取ったドメインの認証をしてくれませんでした。
    なので、一度削除して再度作成しました。(原因は調べてません。もしかしたら作業ミスかもしれないので、まずは上書きしてみてもよいかも)
    削除するとファイルが消えるので、バックアップを取ってから実行するのをお勧めします。

    Certificate Managerに証明書をインポートする

    証明書を再作成したら、Certificate Managerにインポートします。
    証明書内容はブラウザから直接入力することになるので、まずは証明書をcatします。

    取れたら、Certificate Managerに以下の通りに入力します。

  • 証明書本文はcert.penの内容を貼り付け
  • プライベートキーはprivkey.pemの内容を貼り付け
  • 証明書チェーンはfullchain.pemの内容を貼り付け
  • これで、ドメイン名と追加の名前がそれぞれ取得した二つのドメイン名で表示されればOKです。

    あとは、インポートしたssl証明書をCloud Frontに設定するだけです。
    Cloud Frontからdistoributionを選択して、ssl証明書のプルダウンにインポートした証明書が現れるはずです。

    さて、ここで問題があります。証明書は手動インポートしましたが、Let’s Encryptoは有効期限が三ヶ月のため、三ヶ月毎にインポートが必要になります。
    次はこれを自動化していきます。恐らくCLIで対応可能とは思いますが、私の環境で動作可能かだけが問題です・・・

    シェアする

    • このエントリーをはてなブックマークに追加

    フォローする