1. 程式人生 > 實用技巧 >基於Nginx的https服務

基於Nginx的https服務

簡單總結如何在 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