技術

【Rails】ActionController::InvalidAuthenticityToken (ELB,EC2)

投稿日:

どうも中田です。

また出ました。赤い画面。
日々いろんなサイトを見てますが、この画面を一番見てるんじゃないかって。
いっそのこと、このデザインで画面作ったら面白そうですね。
railsエンジニアは拒否反応を持ちつつサイトに訪れていただけることでしょう。

本題

さて、Railsの本番環境でこんなエラーが出ましたー。
ということでその解決策のお話。

今回のエラーは下記内容でした

HTTP Origin header (https://www.xxx.jp) didn't match request.base_url (http://www.xxx.jp)

プロトコルが違っちゃってますね
スキーマ違いでクロスサイトと判別されてるんすね
ちなみに、本番環境はAWSを使っていて

[ELB] -> [EC2(nginx -> rails)] -> [RDS]

って感じになってます。

ELBがSSL終端にしてるので、nginxにはHTTPでしか来ません。
なので…

解決方法

nginxの設定追加しました

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #これ追加
    proxy_set_header X-Forwarded-Proto https; #これ追加
    proxy_pass http://www.xxxx.com;
  }

多分、X-Forwarded-Protoの追加だけでいいけど、クライアントIPもわかった方がいいだろうって感じで X-Forwarded-For も入れてます。

-技術

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

[Slack] スラッシュコマンドでamazon検索

Slackネタです。 amazonがSlackの買収を検討しているとかいないとか …

セレクトボックスにfont-awesomeのアイコンを使うときは注意が必要。

セレクトボックスの中にfont-awesomeのアイコンを表示したい。 そんなと …

no image

[wordpress]各固定ページに個別のCSSを読み込ませる

こんばんは wordpreddでオリジナルテーマを作成している時、各固定ページに …

[Xcode]Provisioning ProfileのUUIDを確認する方法

どうも田中です。 iOSアプリの審査に向けて作業している最中、buildエラーに …

go

【Golang】package strconvのintSize = 32 << (∧uint(0) >> 63)は何をしているのか

こんにちは Goのstrconvのパッケージを読んでたらintSizeというもの …