質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.36%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Scratch

Scratchは、MITメディアラボが開発した子ども向けプログラミング言語。コードを記述することなくブロックを組み合わせてプログラミングを行うビジュアルプログラミング言語です。Scratch2.0からは、Web上でのプログラミングも可能になっています。

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

2回答

222閲覧

「Invalid Host header」エラーについて

tarikihongan

総合スコア27

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Scratch

Scratchは、MITメディアラボが開発した子ども向けプログラミング言語。コードを記述することなくブロックを組み合わせてプログラミングを行うビジュアルプログラミング言語です。Scratch2.0からは、Web上でのプログラミングも可能になっています。

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2024/11/07 10:29

Webサーバの「Invalid Host header」エラーについて教えてください。

以下サイトのScratch-guiをEC2サーバにインストールし、ALB経由でアクセスできるような環境を構築しております。
https://github.com/scratchfoundation/scratch-gui

ScratchのEC2へのインストールは、こちらのサイトを参考に実施いたしました。
https://otona-scratch.champierre.com/books/1/posts/3

その結果、ALBのDNS名(EC2)にアクセスしたところ、「Invalid Host header」が表示されてしまいます。

ネット検索いたしましたが、VueかReactの対策しか見つけられず、どれも真似してみましたがうまくいきませんでした。

■実施した例
・webpack.config.jsに「disableHostCheck: true」を追記
・実行時にオプション「--host 0.0.0.0」を付ける
・実行時にオプション「--disable-host-check」を付ける

サイトへのアクセス結果が502等ではないため、AWSの構成やネットワーク不備ではないと考えております。

Scratch-guiはVueやReactといったパッケージに属さないと思っているため、どのように調べたらよいか大変困っております。

どんな些細なことでも構いませんので、アドバイスいただけますと幸いです。
また、記載内容に不足ありましたら、コメントください。

何卒宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

こんにちは。
disableHostCheck: trueをwebpack.config.jsに追加する方法は一つですが、セキュリティ上、この設定は本番環境では避けるべきです。代わりに、ホストの検証を適切に行うよう設定を変更することをお勧めします。
もしセキュリティやAPI管理にさらに関心があれば、AWS API Gatewayや他のAPI管理ツール、例えばEchoAPIの活用を検討してみてください。それにより、今後の拡張性や運用面でも安定性が向上しますよ。

投稿2024/11/07 11:47

isai

総合スコア153

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tarikihongan

2024/11/08 00:05

コメントありがとうございます。 よくこれらの方法がネットに記載されていたため、真似しようと思いましたがセキュリティ的に宜しくないこと勉強になりました。 ホストの検証とは、具体的にどのようなことをすべきでしょうか。
guest

0

ベストアンサー

根本的には以下と同じ問題ではないでしょうか
https://github.com/scratchfoundation/scratch-gui/issues/5682
AllowedHostsにアクセスを許可するホストを入れないと、このホストヘッダーでのアクセスは違うよね、とエラーになります。

なので、AllowedHostsにALBのDNS名(自分のドメインを設定しているならそのドメイン名)を入れれば行けそうな気がします。
気になるのはそうしたときのALBのヘルスチェックがどう扱われるかですね…。
ALBのヘルスチェックはEC2インスタンスに対してプライベートIPでのアクセスを行うため、EC2インスタンスのプライベートIPも追加する必要があるかも知れません。
(むしろ、今ALBのヘルスチェックが失敗していないか気になるのですが…)

なお今回はALB経由でのアクセスということなので、EC2インスタンスへのアクセスはセキュリティグループで絞り、ホストの検証はALB側で行うのもいいでしょう。

  • EC2インスタンスのセキュリティグループで、ALBのセキュリティグループからの接続のみを許可する
    • これはいずれのやりかたでも推奨
    • 追加があっても、接続確認用に自分のIPからの接続も許可するぐらいにとどめましょう
  • ALBのリスナールールで、ホストヘッダーが一致したらEC2のあるターゲットグループに転送する。デフォルトでは404や403などを返すようにする

などで実現できます。
こうすると、正しいホスト名(ドメイン)でのアクセスだけターゲットグループに転送し、それ以外はエラーを返すような設定をALBの設定だけで行えます。

投稿2024/11/11 03:37

yu_1985

総合スコア7586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tarikihongan

2024/11/12 01:05

いただいたURLを参考にいじってみたところ、無事解決できました! この記事を見つけることができなかったので、本当に感謝です…。 また、ヘルスチェックも見直してみたところ、やはり設定が誤っておりました。 細かく教えていただき、本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問