開発環境
- 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のデフォルトページが表示されない場合があります。
1 2 3 | Blocked host: 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 (containing only numbers, letters, dashes and dots), then add the following to your environment configuration: config.hosts << "xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com" |
それではエラーの内容を一つずつ解読していきます。
エラータイトル
1 | Blocked 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」というホスト名はブロックされているというエラータイトルです。
エラーメッセージ
1 2 | To 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: config.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 2 3 4 5 6 | Rails.application.configure do =====中略===== config.hosts << "xxxxxxxxxx.vfs.cloud9.ap-northeast-1.amazonaws.com" end |
動作確認
下記のコマンドを実行して再度rails serverを立ち上げてアプリケーションを起動し、以下のようにRailsのデフォルトページが表示されていれば問題ありません。