どうも!かけちまるです!
前提
結論
方法はいくつかあるようですが、今回はAWS Certificate Manager(ACM)でSSL証明書を発行し、ELB(ELBのApplication Load Balancer)にAWS Certificate Managerで作成したSSL証明書を関連ずけてSSL化を実現させます。
コマンドコピーssh -i ~/Desktop/{pemファイルがあるパスを指定} ec2-user@{EC2サーバーのIPアドレス}
コマンドコピーsudo yum -y install mod_ssl
Apacheを再起動しないと設定が反映されないのでApacheを再起動するコマンドを打ちます。
Apacheを再起動
コマンドコピーsudo systemctl restart httpd.service
Apacheが起動しているか確認
コマンドコピーsudo systemctl status http.service
下画像の表示になっていればApacheが起動していることになります。
AWSコントロールパネルの左上のサービスメニューからCertificate Managerを選択します。
アクセスできたら証明書のリクエストをクリックします。
パブリック証明書のリクエストを選択し、証明書のリクエストをクリック
このサイトを例にするとkakechimaru.comで入力します。
*.kakechimaru.comを指定することによって「www.kakechimaru.com」,「site.kakechimaru.com」などのサブドメインをサポートすることができます。
ドメインの頭に「*」がついていることがポイントですね。
「DNSの検証」を選択し、「確認」をクリックします。
次のタグを追加では入力してもしなくてもどちらでも大丈夫です。
設定内容を確認し、「確認とリクエスト」をクリック
最後の検証画面にてドメイン名をクリック。
下に詳細がでるので、そこにある「Route53でのレコードの作成」をクリック。
Route 53 でのレコードの作成画面が出てくるので作成をクリックするとレコードを作成できます。
作成した証明書の状況は検証保留中になっているかもしれませんが、そのうち発行済になるので気にせず次にいきましょう。
EC2に移動し、ロードバランサーから「ロードバランサーの作成」をクリック
一番左のApplication Load Balancerを選択
ここでは説明しているところ以外は、デフォルトのままで良いと思います。
名前の設定をします。
ここは任意の名前を設定してください。
リスナーを設定します。
「リスナーを追加」からプロトコルをHTTPSに設定します。
アベイラビリティーゾーンを設定します。
VPCを選択し、アベイラビリティゾーンとサブネットを2つ以上選択してください。
証明書タイプをACMから証明書を選択する(推奨)
証明書の名前で先ほどAWS Certificate Manager(ACM)で作成した証明書を選択します。
セキュリティーグループの割り当てで新しいセキュリティーグループを作成するを選択
セキュリティグループ名、説明は任意の値で設定してください。
最後にタイプをHTTP、HTTPSを設定します。
名前を任意で設定します。
プロトコルをHTTPSに設定してください。
ターゲットにEC2インスタンスを登録します。
下からEC2インスタンスを選択し、「登録済みに追加」で設定できます。
設定内容を確認し、作成をクリック
EC2に移動し、セキュリティグループを選択します。
EC2インスタンスに紐づけられているセキュリティグループを選択しインバウンドルールの編集をクリック
ルールを追加からHTTP通信を許可するよう設定します。
設定したらルールを保存をクリック
Route53に移動し、ホストゾーンをクリック。
対象のドメインをクリック。
設定済のAレコードを選択し編集をクリック
値/トラフィックのルーティング先をApplication Load Balancer と Classic Load Balancer へのエイリアスに設定します。
値に設定したApplication Load Balancerを設定します。
https://ドメイン名でアクセスして表示できたら完了です。
お疲れ様でした!
おわり
フィードバックを送信
記事についてのフィードバックはTwitterかお問い合わせフォームから受け付けております。