[Rails] 在開發環境使用 SSL
雖然現在都用 puma-dev 了,puma-dev 可以直跟掛 SSL 憑證 XD
這裡記錄另一個方法
要在開發環境使用 SSL 憑證可以用 mkcert ,產生對應 domain 的憑證
mac 可以用 homebrew 安裝
$ brew install mkcert
$ mkcert -install
成功後會顯示
Using the local CA at "/Users/stan/Library/Application Support/mkcert" ✨
The local CA is now installed in the system trust store! ⚡️
The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊
建立憑證 (以 rails 專案為例)
// 建立在 config/ssl
下
$ cd {你的專案}
$ mkdir config/ssl
$ cd config/ssl
$ mkcert localhost
成功後會顯示
Using the local CA at "/Users/stan/Library/Application Support/mkcert" ✨
Created a new certificate valid for the following names 📜
- "localhost"
The certificate is at "./localhost.pem" and the key at "./localhost-key.pem" ✅
會在 config/ssl
下建立 localhost-key.pem
、localhost.pem
兩個檔案
專案設定
在 config/puma.rb
中設定 SSL 服務:
找到
port ENV.fetch("PORT") { 3000 }
environment ENV.fetch("RAILS_ENV") { "development" }
並改為
# using mkcert self-signed cert enable ssl
ssl_bind '0.0.0.0', ENV.fetch('PORT') { 3000 }, cert: 'config/ssl/localhost.pem', key: 'config/ssl/localhost-key.pem'
environment ENV.fetch('RAILS_ENV') { 'development' }
在 config/environments/development.rb
中加上
config.force_ssl = true
使所有連線都使用 SSL
重啟 server
$ rails s
打開 https://localhost:3000
即可使用