【技術博客】nginx服務器的https協議實現

在本學期軟件工程的Alpha和Beta階段,咱們的服務器部署都是使用基礎的http協議,http在網絡路由間的信息轉發都爲明文,這對咱們網站的帳戶密碼登陸來講很不安全,所以在Gamma階段咱們實現了https協議傳輸。html

1.https證書申請

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

2.https證書配置

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

相關文章
相關標籤/搜索