基於Nginx的https服務
阿新 • • 發佈:2020-10-23
簡單總結如何在 Nginx 配置 HTTPS 伺服器,讓自己站點上『綠鎖』。
Nginx 配置 HTTPS 並不複雜,
主要有兩個步驟:
簽署第三方可信任的 SSL 證書 和 配置 HTTPS
有一個免費申請證書的網站https://freessl.org/
推薦一下。
https服務
對傳輸內容進行加密以及身份驗證。
為什麼需要https
- http不安全,傳輸資料被中間人盜用,資訊洩露
- 資料內容劫持,篡改
對稱加密和非對稱加密
https加密協議原理
中間人偽造客戶端和伺服器
如何解決
https加密原理
1、發起ssl連線,非對稱加密
2、服務端將公鑰傳送給客戶端
3、客戶端用公鑰對對稱加密的密碼進行加密 傳送給服務端
4、之後客戶端和服務端進行對稱金鑰傳輸資料
配置docker(443)
docker run -d -p 443:443 --name nginx_443 nginx_443:latest /sbin/init nginx -c /etc/nginx/nginx.conf
conf檔案配置
server { listen 443; server_name localhost; ssl on; ssl_certificate /etc/nginx/ssl_key/jesonc.crt; ssl_certificate_key /etc/nginx/ssl_key/jesonc.key; location / { root /usr/share/nginx/html;#limit_conn conn_zone 1; #limit_req zone=req_zone; # limit_req zone=req_zone burst nodelay; # limit_req zone=req_zone burst nodelay; index index.html index.htm; } # my config location /mystatus { stub_status; } #error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root/usr/share/nginx/html; } }
測試結果
https服務優化
- 啟用keepalive長連線
- 設定ssl session快取
如果你用的是雲伺服器的話,無論是阿里雲或者騰訊雲亦或其他雲,這些雲伺服器廠商基本上都會提供安全組配置的,所以你需要到你的雲伺服器控制檯,針對該伺服器進行安全組配置(說明白些,就是開放埠),配置完安全組之後,再訪問一次。
如果你配置了安全組之後,依舊無法訪問的話,可能原因是你的伺服器開了防火牆。
判斷防火牆狀態
systemctl status firewalld