上篇設定好了 Wordpress 可是只能用 http 連線,一直看到瀏覽器提醒很討厭,所以就來研究一下怎麼設定 nginx 網站的SSL連線。參考資料是這篇。以下指令都要用root權限執行。
1. 製作憑證/密鑰。
我不是很確定系統哪裡放密鑰比較好,所以我參考這篇放在 /root 下面:
mkdir /root/certs/
接下來用這個指令製作密鑰:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /root/certs/nginx.key -out /root/certs/nginx.crt
系統會問你一串問題,但最重要的是 Common Name (e.g. server FQDN or YOUR name)要填正確的 domain name
執行完後會得到一組密鑰,其中 nginx.crt 是公開的憑證,nginx.key 是系統的密鑰。
2. 設定 nginx
vim /etc/nginx/sites-available/default
重點如下:
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /root/certs/nginx.crt;
ssl_certificate_key /root/certs/nginx.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers HIGH:!aNULL:!MD5;
存檔後重啟 nginx:
nginx -t
service nginx restart
基本上就大功告成了
3. 附記
雖然這樣就結束設定,但是瀏覽器不會喜歡這個憑證。因為這個憑證沒有經過認證。連線是安全的,但是因為每個人都可以設定,現在的瀏覽器喜歡經過認證的憑證。稍微查了一下,十分昂貴呢。所以我也不確定這個小小的個人 project 會不會變成吸金怪獸....
No comments:
Post a Comment