【Ruby on Rails】Cloud9で_rails s_したときに_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を立ち上げ、アプリケーションを起動します。

1$ rails server

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

1Blocked host: xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com
2To allow requests to xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com make sure it is a valid hostname (containing only numbers, letters, dashes and dots), then add the following to your environment configuration:
3config.hosts << "xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com"

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

エラータイトル

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

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

エラーメッセージ

1To allow requests to xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com make sure it is a valid hostname (containing only numbers, letters, dashes and dots), then add the following to your environment configuration:
2config.hosts << "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」に以下を記述します。

1# title: /config/environments/development.rb
2Rails.application.configure do
3
4  =====中略=====
5
6+ config.hosts << "xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com"
7end

動作確認

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

【Ruby on Rails】Cloud9で_rails s_したときに_Blocked host_というエラーが表示された時の対処方法 | いっしー@Webエンジニア