Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

httpsでdeviseを使ってログイン機能を実装した話

Last updated at Posted at 2017-09-28

自分用のメモなので見づらくて申し訳ないです...

httpsでdeviseを使ってログイン機能を実装した話

railsでdeviseを使ってログイン機能を実装して本番環境にあげたら
真っ白いページが出てプロダクトが動きませんでした。

原因は本番環境はhttp(80番ポート)が閉じられていてhttps(443番ポート)しか
空いていませんでした。
なのでrailsがリダイレクトなどの処理を行うときにhttpでリダイレクトをしようとして
うまく動かなくなっていたみたいです。
なのでrailsとnginxにhttpsでリダイレクトをするという設定を追加しました。

config/enviroments/development.rb
または
config/enviroments/production.rb
の末尾に

config.force_ssl = true

を追加してrails自体の通信を強制的にhttpsで通信するように変えます。

ただ、このままではhttpとhttpsで何度もリダイレクトを起こしてしまうので
nginxの設定ファイルに

proxy_set_header X-FORWARDED_PROTO https;

を追加します。

これでnginxを再起動すれば動くはず!

解決するのに3日間もかかってしまったのは内緒

rails初心者なので補足などがあれば教えていただきたいです...

設定の詳細

config.force_ssl = true

rubyonrailsのconfig.force_ssl = trueの時の挙動
HTTP Strict Transport Security

  1. httpのリクエストをhttpsにリダイレクトする
  2. セキュアなクッキーを通知する
  3. HTTP Strict Transport Security (HSTS):ブラウザにhttpsでしか通信できないと通知する
proxy_set_header X-FORWARDED_PROTO https;

proxy_set_header
要求されたヘッダーにhttpsの通信であることを追加している?

7
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Qiita Advent Calendar is held!

Qiita Advent Calendar is an article posting event where you post articles by filling a calendar 🎅

Some calendars come with gifts and some gifts are drawn from all calendars 👀

Please tie the article to your calendar and let's enjoy Christmas together!

7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?