他サーバーで取得したドメインをAWSでhttps化する その2(ロードバランサへのSSL証明書のアタッチ)
前回、他サーバーで取得したSSL証明書をAWSのACMにインポートしました。
それを今回443ポートの解放に使います。
https://recipe.kc-cloud.jp/archives/11067
この記事にある中の一番最初の構成を目指します。
つまり、クライアントからのリクエストをRoute53でALB(ELB)の443ポートに送って、ALBがEC2の80番ポートに送る構成です。
443に必要なので、SSL証明書はALBにつけます。
さらにセキュリティを強固にしたいときにALB ⇒ EC2間も443にするのかな?
ロードバランサーの443ポートを開けます。
ロードバランサーのリスナー設定を開きます。
で、ACMから、インポート済みの証明書を選択。
終わると、使用している証明書一覧みたいなのが現れ、詳細を見ると、
リスナーのデフォルト証明書。 証明書リストのいずれの証明書のドメインにも一致しないリクエストに使用されています。
的なメッセージが出てて、意味ない証明書を貼り付けたみたいな言われ方をしますが、問題なかったです。
hostsファイル書き換えによるSSL化確認
不安な方はhostsファイルを書き換えることで、証明書がworkするか確かめられます。
Windows : C:\Windows\System32\drivers\etc\hosts
Mac : /private/etc/hosts
にあるhostsファイルを開きます(管理者権限でしか書き換えられません、僕はメモ帳を管理者権限で開いてからファイル選択しました)。
参考
http://onocom.net/blog/windows-hosts-file/
このhostsファイルはIPアドレスとドメインが名の組が書かれています。
例えば
127.0.0.1 localhost
と書いてあると思います。
ブラウザでlocalhostと打つと127.0.01に繋がるのはここに書いてあったからなんですね。
DNSよりも先に参照されるので、DNSサーバーのキャッシュを待つことなく、SSL化を確認することができます。
ロードバランサーのIP ドメイン名
を書き足して、そのドメインにブラウザからhttps://をつけてアクセスすると、無事Webサイトを開くことができ、URLバーの左上に鍵マークがついており、SSL化が確認できると思います。
鍵マークをクリックすると証明書:有効となっています。
あとは各DNSサーバーのキャッシュ更新を待てば、どこからアクセスしてもhttpsでアクセスできます!(hostsファイルは元に戻しておいてください)