1. 程式人生 > 程式設計 >Ubuntu Nginx下配置ssl實現https訪問

Ubuntu Nginx下配置ssl實現https訪問

前言

因為要寫個微信小程式,要請求我自己伺服器上的介面必須將我的域名新增至白名單,而且必須是要https訪問,故需此番折騰。
同時,因為我在伺服器上配置的是Flask專案,詳細在Ubuntu 16.04上部署Flask,nginx的配置跟正常的稍微有些不同。

第一步,搞個證書

本人因為用的騰訊雲的伺服器,所以在騰訊雲申請了個一年的免費證書,其他雲伺服器商應該也有免費證書,至於OpenSSL就不適合本教程了。

第二步,安裝證書

簡單來說,就是把從騰訊雲、阿里雲下載下來的證書挪到伺服器上去,我是把證書上傳到git伺服器,然後在伺服器端git pull下來,證書放哪裡都可以

第三步,配置nginx

預設的nginx配置檔案是nginx.conf

,因為我部署的Flask專案,配置檔案不同

sudo nano /etc/nginx/sites-available/myproject
複製程式碼

新增內容如下

server {
    listen 80;
    server_name www.ymhd.xyz;
    location / {
        include uwsgi_params;
        uwsgi_pass unix:/home/ubuntu/myproject/myproject.sock;
    }
    # 下面是配置https內容
    listen 443;
    ssl on;
    ssl_certificate   /usr/local
/ymhd/1_www.ymhd.xyz_bundle.crt; ssl_certificate_key /usr/local/ymhd/2_www.ymhd.xyz.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; } 複製程式碼

其中特別注意的是,ssl_certificate

ssl_certificate_key後面的內容分別是你證書中crtkey檔案的絕對路徑

最後,重啟

重啟nginx,重啟服務

sudo systemctl restart nginx
sudo systemctl restart myproject
複製程式碼