【EC-CUBE4系】Certificate ManagerでHTTPSを導入

AWSのEC2でEC-CUBE4系をベースとしたサイトを構築する際に、
HTTPSを導入する方法を紹介します。
方法としては、Let’s Encryptのcertbotを使って導入するか、
AWSのCertificate Managerを使って導入する方法があります。

Certificate Managerを使うと、無料でSSL証明書を発行することができ、
また、更新も自動的に行われます。
cronやapacheでの設定も不要になったり、
簡単になったりするのでオススメです。
今回は、Certificate Managerを使う方法をご紹介します。

まず、Certificate Managerを使ってSSL証明書を発行し、
HTTPSを導入します。
https://qiita.com/hellscare/items/1f515bc21111a5cf3fdb

一つ注意を挙げるとすると、最後のAmazon LinuxのApache設定ですが、
私はAmazon Linux2を利用したのですが、
mod24_sslは入っていませんでした。
Amazon Linux2では、mod_sslをインストールすると
apache2.4に対応したものが入手できます。

HTTPSが導入できたら、以下の記述をapacheのhttpd.conf内に追記します。

これでHTTPアクセスを強制的にHTTPSに変換します。
そして、EC-CUBEのindex.php先頭辺りに以下の記述を追記します。

HTTP_X_FORWARDED_PROTOヘッダーは、
クライアントがロードバランサーに接続する前に選択していた
プロトコル(HTTP or HTTPS)を特定するために利用します。

AWSのロードバランサーを利用すると、
HTTPSの環境変数がセットされないので、
ここでセットしてあげることで、
無事EC-CUBE4系でもHTTPSが利用できるようになります。

ABOUTこの記事をかいた人

フリーランスとして働く、フルスタックエンジニア 初崎 匠のサイト。仕事のことから趣味のアニメーション制作、英語学習など、様々なことを通じて、少しでも多くの人が幸せになれるような価値を提供できるよう挑戦し続けます。