新規インストールしたEC-CUBE4で設定を変更しようとしたところ、「送信しようとしている情報は保護されません」という画面が出て保存できない現象に遭遇しました。
設定を保存しようとすると以下のように表示され、[このまま送信]をしても変更した設定は保存されていませんでした。
送信しようとしている情報は保護されません
このフォームは安全ではない接続を使用して送信されているため、情報が他人に読み取られる可能性があります。
設定の保存だけでなくキャッシュのクリアやテンプレートのダウンロードや新規追加も機能しておらず、このままでは何もできない状況です。どうもフォーム送信時に”https”ではなく”http”で送信しようとしていて、それでブロックされているみたいでした。
結果的に.htaccessに1行追加するだけで解決できましたので、対処法を備忘録として残しておきたいと思います。
現象が発生した環境
今回現象が発生した環境は以下の通りです。対処法は他の環境でも有効かと思います。
- EC-CUBE:4.1.2
- サーバー:お名前.com レンタルサーバー RSプラン
- PHP:7.4.29
- MySQL:5.7.27
EC-CUBE4の管理画面で「送信しようとしている情報は保護されません」と出て設定が保存できない時の対処法
インストールディレクトリ直下にある.htaccessの”RewriteEngine On”の下に以下を追記します。
RewriteEngine On
RewriteRule ^(.*) - [E=HTTPS:on]
“RewriteEngine On”は元から入っているので、”RewriteRule ^(.*) – [E=HTTPS:on]”のみ追加してください。
これでエラーは解消されます。
引き続きエラーが出る場合は、ブラウザのキャッシュをクリアしてみてください。それでもダメなら/var/cache/prod内を削除してEC-CUBEのキャッシュもクリアします。
ECCUBE_FORCE_SSLをtrueにするとリダイレクトループが発生
上述した.htaccessの編集で解消できるので、ここからは余談になりますが、.envのECCUBE_FORCE_SSLもtrueに変更しておくことで常時SSLで通信されるようになります。
.envのECCUBE_FORCE_SSLは、インストール時点ではfalseになっていました。現象からしてECCUBE_FORCE_SSLをtrueに変更すれば解消すると思ったのですが、trueにするとリダイレクトループが発生してしまいました。
ECCUBE_FORCE_SSL=true
上述した.htaccessのRewriteRuleを追加する前に、ECCUBE_FORCE_SSLをtrueに変更するとリダイレクトループが発生します。.htaccessに上述したRewriteRuleを追加することでリダイレクトループも解消するので、ECCUBE_FORCE_SSLをtrueに変更できます。
.htaccessで常時SSL通信するように指定しているので不要かもですが念のため変更しておきました。
.envを変更したら、管理画面の[コンテンツ管理] – [キャッシュ管理]からキャッシュをクリアします。
あとがき
.htaccessに1行追加するだけなので対処自体は簡単ですが、ここに辿り着くまでに結構時間がかかってしまいました。ハマるとちょっとしたことでも時間が溶けますね(^^;
同じようなエラーで設定保存ができない場合は、上述した対処法をぜひお試しください。