在本學期軟件工程的Alpha和Beta階段,咱們的服務器部署都是使用基礎的http協議,http在網絡路由間的信息轉發都爲明文,這對咱們網站的帳戶密碼登陸來講很不安全,所以在Gamma階段咱們實現了https協議傳輸。html
https簡單地說就是http加了一層ssl加密層,加密證書在任何一臺計算機上均可以生成,可是由任意第三方生成的證書毫無疑問是不可靠的。所以有了CA這樣的證書管理機構,CA在網絡通訊的過程當中能夠被認爲是徹底可信的第三方,使用CA的ssl證書才能夠取得客戶端瀏覽器的信任。nginx
首先安裝cerbot(在ubuntu上使用apt安裝便可),使用下面的命令能夠執行cerbot認證:web
certbot certonly
認證過程當中會出現選擇:shell
1: Spin up a temporary webserver (standalone) 2: Place files in webroot directory (webroot)
在cerbot中有上面兩種認證方式,第一種須要中止服務器,cerbot將創建一個臨時服務器進行驗證域名對應的IP是否爲本機,第二種則不須要中止服務器的服務,須要在指定位置建立文件來驗證你對該IP計算機的控制權。咱們使用了第一種驗證方式,由於不須要修改nginx配置文件因此更簡單。選擇驗證方式後根據提示一步步填寫郵箱、贊成協議便可。ubuntu
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/you.domain.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/you.domain.com/privkey.pem Your cert will expire on 2018-01-26. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
顯示以上內容的時候表示本機的https證書已經申請成功,密鑰的文件地址也在其中。可使用下面的命令查看這臺計算機上的證書:瀏覽器
certbot certificates
https證書須要加入nginx的配置種,一方面咱們須要在nginx中指定私鑰和公鑰的文件地址,另外一方面須要大幅修改端口設置,http下的nginx配置能夠參考上一篇技術博客。須要注意的是http是約定使用80端口通訊,而https約定使用443端口通訊,因此咱們須要將80端口的流量重定向至https的443端口,確保全部的流量都以https方式傳輸。安全
server { charset utf-8; listen 80; server_name www.you.domain.com you.domain.com; return 301 https://you.domain.com$request_uri; } server { listen 443 default ssl; server_name blogof33.com; ssl_certificate /etc/letsencrypt/live/you.domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/you.domain.com/privkey.pem; error_log /var/log/nginx/error.log; location / { alias xxxxx; } }
隨後重啓nginx服務,至此配置完成。bash