バージョン選択

フォーラム

メニュー

オンライン状況

18 人のユーザが現在オンラインです。 (7 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 18
もっと...

サイト内検索

質問 > 管理機能 > 管理画面のSSL設定について

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
maimaimai
投稿日時: 2019/6/19 12:30
対応状況: 解決済
新米
登録日: 2019/6/10
居住地:
投稿: 9
管理画面のSSL設定について
▼テンプレート
[EC-CUBE] EC-CUBE3
[レンタルサーバ] AWS
[OS] Amazon Linux 2
[PHP] 7
[データベース] MySQL
[WEBサーバ] apache 2.4

AWSにてSSL&固定IPが必要になり、ALBの上にGlobal Acceleratorをつけたのですが、問題はGlobal AcceleratorだとユーザーIPが取得できず管理画面へのアクセスを制限することができません。そこでインスタンスに割り振られている、Elastic IPで直接アクセスすれば、そこで管理画面にはIP制限できるかと考えています。ただ、サイト全体にSSLが適用されてしまうため、アクセスできない状態です。

管理画面だけSSLを使用しない方法ってあるのでしょうか?

また、特定のIPでアクセスした場合はSSLを適用しない方法はあるのでしょうか?

何卒よろしくお願い致します。

468
投稿日時: 2019/6/19 16:02
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 2651
Re: 管理画面のSSL設定について
試していないので正確な情報でなく申し訳ないのですが、
ELBを経由した通信は$_SERVER['HTTP_X_FORWARDED_FOR']に大元のアクセス元IPアドレスが格納されてWEBサーバに到達するのではないかと思います。

/src/Eccube/Application.phpの中に以下の記述があり、
アクセスしてきたIPアドレスを判定していると思うのですが、
そこで$app['request']->getClientIp()を利用せずに
$_SERVER['HTTP_X_FORWARDED_FOR']を利用するようにすれば対応できるかもしれません。

if (array_search($app['request']->getClientIp(), $allowHost) === false) {



もしかしたら、/html/index.phpの最初のほうで
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
}

のように$_SERVER['REMOTE_ADDR']を上書きしてもいけるかもしれません。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

maimaimai
投稿日時: 2019/6/19 17:21
対応状況: −−−
新米
登録日: 2019/6/10
居住地:
投稿: 9
Re: 管理画面のSSL設定について
ご返信ありがとうございます。
ELBではユーザーのIPは取得できるのですが、Global Acceleratorを割り当てると、IPがAWS内の独自に発行したIPに置き換わってしまうようです。なので、echo $_SERVER['HTTP_X_FORWARDED_FOR']で表示しても、通常のIPではなっかたです。。

なので、やはり別ルート(サーバーのIPを叩いて)からサーバーに接続する必要がありそうです。
サーバーのIPから入れば、ロードバランサーを返さずに入れるので。

別ルートからサーバーに接続した時に、強制SSLが解除できれば、問題は解決しそうなのですが。。。
config.ymlの「force_ssl」の値を常に拾っているものなのか、どこか1箇所指定すれば、強制SSLを解除できるのかが、わからないんです。
maimaimai
投稿日時: 2019/6/19 18:47
対応状況: 解決済
新米
登録日: 2019/6/10
居住地:
投稿: 9
Re: 管理画面のSSL設定について
お世話になります。やはりGlobal Acceleratorでは元IPがわからないということもあり、別の手段を探していたところNLBでIPを付与することがわかり、こちらにロードバランサーを変更しました。

ただ、強制SSLにしているとリダイレクトループになり、
$_SERVER['HTTPS'] = 'on';

をindex.phpにダイレクトに書き込むという荒技で解決しました。
しばらく様子をみてみますが、一応解決ということにしておきます。
ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は66,636名です
総投稿数は98,374件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2651
4
nanasess
2103
5
umebius
1753
6
yuh
1612
7
red
1424
8
h_tanaka
1044
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.