ssl化対応した際に、つまずいたので、メモ
InvalidAuthenticityToken エラーが発生
証明書をELBに設定後以下のエラーが発生。
ちなみにローカル環境では起きなかったので、nginx周りの設定がおかしいのかな思いました。
ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken)
手順通りnginx.confを編集
nginx.conf
server {
listen 443 ssl; # 追記
# :
# :
location @advice_api {
# :
proxy_set_header Host $host; # 追記
proxy_set_header X-Forwarded-Proto $scheme; # 追記
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 追記
}
}
が、エラーは変わらず発生
ELBを使っている場合、sslの終端がelbになる
ということに調べているとわかりました。
nginx.conf
proxy_set_header X-Forwarded-Proto $scheme;
を以下のように書き換えました。
nginx.conf
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
エラーも無事解消されました。
$http_x_forwarded_proto
を使うとnginx側でELBへの接続に使用したプロトコルを判別できるっぽいです。