🎉
Rails の開発環境 (localhost) で https を使う
みなさんこんにちは。
バックエンドエンジニアの豊永です。
Railsの開発環境は、特に設定をせずに利用すると http://localhost:3000
となります。
公開されてる環境では ほとんどの場合 https
が使われていると思いますが、http
か https
の差異によって挙動が変わって困ることがあったので、開発環境で https
を使う方法を調べました。
やりたいこと
Railsの開発環境 (localhost) で https
を使いたいです。
動作確認の環境
$ sw_vers
ProductName: macOS
ProductVersion: 14.5
BuildVersion: 23F79
$ ruby --version
ruby 3.3.6 (2024-11-05 revision 75015d4c1f) [arm64-darwin23]
$ rails --version
Rails 8.0.1
やったこと
SSL証明書を作成する
mkcertという開発用の証明書を作成するためのツールを使います。
- mkcertをインストールする
$ brew install mkcert
- ローカル認証局 (CA) を作成する
$ mkcert -install
- 作成されたことを確認する
$ mkcert -CAROOT
/Users/hogehoge/Library/Application Support/mkcert
Railsの設定を変更する
※ /path/to
は Railsブロジェクトの直下とします。
- 証明書を作成する
$ mkdir -p /path/to/config/ssl
$ cd config/ssl
$ mkcert localhost 127.0.0.1 ::1
私の環境では以下のファイルが作成されました。
- localhost+2-key.pem
- localhost+2.pem
- Puma の設定を変更する
以下の設定を追加してください。3001
ポートで、https接続できるようにします。
config/puma.rb
+ ssl_bind '0.0.0.0', '3001', {
+ key: "config/ssl/localhost+2-key.pem",
+ cert: "config/ssl/localhost+2.pem",
+ verify_mode: "none"
+ }
Railsサーバーを起動する
※ /path/to
は Railsプロジェクトの直下とします。
$ cd /path/to
$ bin/rails s
https://localhost:3001/
で接続することができます。
表示されました!
Discussion