リバースプロキシnginxにsslを設定した裏のEC-CUBE 2で管理者ログインできない

EC-CUBE 2を触ることがあって、カード決済テストするにはhttpsの環境が必要..ということで開発環境にもsslを導入しました

Nginx – Apache – EC-CUBE 2

と表にNginxを立ててたので、そこにsslを導入
config.phpのHTTP_URLをhttpsにします

$ vim config/config.php

define('HTTPS_URL', 'https://sample.co.jp');

これで、https化できたのですが、管理者画面でエラーになります
コードを読み進めると、httpでアクセスしてるようで..

リバースプロキシNginxのconfに

proxy_set_header X-Forwarded-Proto $scheme;

を設定しておいて、EC-CUBE2でもhttpsで動いてほしかったのですが、対応してない様子

data/require_base.php で無理やり対応しました

$ vim data/require_base.php

33行目あたりに

if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
    $_SERVER['HTTPS']='on';
}

これで、動作するようになりました

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です