Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

Ruby

【Ruby on Rails】Cloud9で"rails s"したときに"Blocked host"というエラーが表示された時の対処方法

Ruby on Rails Blocked host

開発環境

  • Rails version: 6.1.6.1
  • Ruby version: ruby 3.1.2
  • AWS Cloud9
  • Amazon EC2

エラーの内容

AWS Cloud9でRuby on Railsをインストールしたあと、下記のコマンドを実行してrails serverを立ち上げ、アプリケーションを起動します。

プレビューをすると下記のエラーが表示され、Railsのデフォルトページが表示されない場合があります。

それではエラーの内容を一つずつ解読していきます。

エラータイトル

  • Blocked host → ブロックされたホスト
  • xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com → ホスト名

「xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com」というホスト名はブロックされているというエラータイトルです。

エラーメッセージ

  • To allow requests to → リクエストを許可するには
  • xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com → ホスト名
  • make sure it is a valid hostname → 有効なホスト名であることを確認してください
  • your environment configuration → あなたの環境設定に
  • then add the following to → 以下を追加します
  • config.hosts << "xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com" → 追加する内容

リクエストを許可するには「xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com」というホスト名が有効であることを確認してください。

あなたの環境設定に「config.hosts << "xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com"」を追加してくださいというエラーメッセージです。

エラーの原因

Rails 6 からは「DNS再バインド攻撃」に対するセキュリティーを強化しているため、自分自身からのアクセスしか許可しない仕様になっているとのことです。

DNS Rebuilding攻撃を防ぐためにホスト名をホワイトリストに登録しなければならないため、エラーメッセージにあるように「config.hosts」にホスト名を指定すれば良いとのことです。

エラーの対処方法

エラーメッセージにある通り「/config/environments/development.rb」に以下を記述します。

動作確認

下記のコマンドを実行して再度rails serverを立ち上げてアプリケーションを起動し、以下のようにRailsのデフォルトページが表示されていれば問題ありません。

Railsのデフォルトページ

Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

-Ruby