本文引用自
http://blog.linjunhalida.com/blog/using-https-for-rails/
https是針對http的加密協議,它可以保證用戶訪問網站的過程中,通訊的數據是加密的,這樣可以防止第三方監聽,保護用戶隱私。這裏總結一下如何給Rails加上https的支持。
首先,假設你的rails已經跑起來了,在http://yourserver.com
,服務器是ubuntu,本地的訪問方式是127.0.0.1:8787
,那麼你需要利用nginx
來提供https的服務。
首先安裝nginx
和openssl
:
sudo apt-get install nginx openssl
生成服務器的祕鑰公鑰:
openssl req -new -nodes -keyout server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
生成的幾個文件解釋:
-
server.key
服務器的私鑰。 -
server.csr
(certificate signing request) https證書籤名請求。 -
server.crt
生成的服務器證書。
然後有這些文件,我們可以配置nginx服務了。
生成nginx的配置文件:
sudo touch /etc/nginx/sites-available/yourserver
sudo ln -s /etc/nginx/sites-available/yourserver /etc/nginx/sites-enabled
sudo vi /etc/nginx/sites-available/yourserver
裏面的內容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
需要修改裏面的server_name,yourpath
。
然後重新啓動nginx:
sudo service nginx restart
如果沒有報錯,那麼你就可以通過https://yourserver.com
來訪問你的網站了。
不過,瀏覽器會阻止你繼續訪問,或者需要你的確認。 瀏覽器會保存一份可信網站的列表,你的服務器加密是自己生成的,不在裏面。 如果你的網站是商用的,最好去註冊一下。這裏有一個指引。
引用資料: