環境
Rails 4.2.6
Thin
以下のように thin を起動するだけで良い。オレオレ証明書とか不要。
$ thin start --ssl -p 3001
参考: Railsのローカル環境でSSL(https)を使う - Qiita
Puma
オレオレ証明書が必要でちょっとめんどくさい。
オレオレ証明書を作る
$ cd ~/.ssh
$ openssl genrsa -des3 -out server.orig.key 2048
(remove the password)
$ openssl rsa -in server.orig.key -out server.key
(generate the csr)
$ openssl req -new -key server.key -out server.csr
(色々聞かれるので入力する)
(self signed ssl certificate)
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
puma 起動
$ puma -b 'ssl://0.0.0.0:3000?key=/home/hoge/.ssh/server.key&cert=/home/hoge/.ssh/server.crt'
puma 起動設定ファイル
いちいち コマンドラインオプションで指定するのも面倒なので設定ファイルに記述する。
puma.rb
ssl_bind '0.0.0.0', '3000', {
key: "/home/hoge/.ssh/server.key",
cert: "/home/hoge/.ssh/server.crt"
}
こうしておけば以下のように起動するだけでOk
$ puma -C puma.rb
Nginx
※先の「Puma」で記載したのと同じ内容でオレオレ証明書があって /home/vagrant/.ssh/server.crt
に保存されている前提
server {
listen 80;
listen 443 ssl; # <-- ポート443を待ち受ける
# 以下SSLを有効化して証明書/鍵を設定
ssl on;
ssl_certificate /home/vagrant/.ssh/server.crt;
ssl_certificate_key /home/vagrant/.ssh/server.key;
上記設定後、 https://localhost/xxx
にアクセスできたらOK