Stan Blog

學習過程中的一些記錄

[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.pemlocalhost.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 即可使用


Ref:

Comments

comments powered by Disqus