Nginx作為一款高效能的Web伺服器和反向代理伺服器,被廣泛用於應用部署和負載平衡。在安全環保意識的逐漸提升下,HTTPS也成為現代Web應用中不可或缺的一環。本篇文章將重點放在Nginx的HTTPS部署和安全效能最佳化。
一、Nginx的HTTPS部署
首先需要去憑證授權單位(CA)進行SSL憑證的申請。申請成功後,會得到一個憑證檔案(.crt)和一個私鑰檔案(.key)。
Nginx的HTTPS設定需要涉及三個面向:HTTP轉送至HTTPS、Nginx的憑證設定和HTTPS的設定。
(1)HTTP轉送到HTTPS
在Nginx的設定檔中,需要加入一段HTTP的配置,使得使用者存取HTTP預設埠80時,能夠自動跳到HTTPS的預設埠443上。
server { listen 80; server_name example.com; return 301 https://$server_name$request_uri; }
(2)Nginx憑證設定
在Nginx的設定檔中,需要將剛申請的SSL憑證和私密金鑰檔案加入到設定檔中。
server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/cert.key; ... }
(3)HTTPS設定
需要設定HTTPS協定的特定選項,例如啟用HTTP/2協定、停用SSLv3等。
http2_push_preload on; #启用HTTP/2协议的推送预加载 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #指定启用的TLS协议版本 ssl_ciphers EECDH+AESGCM:EDH+AESGCM:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM; #指定加密套件 ssl_prefer_server_ciphers on; #常用加密套件优先顺序为服务端指定的值 ssl_session_cache shared:SSL:10m; #指定SSL session缓存 ssl_session_timeout 10m; #指定SSL session超时时间
二、Nginx的安全效能最佳化
在進行HTTPS服務的部署後,還需要注意以下安全性效能最佳化方面的問題,以確保服務的穩定與安全:
OCSP(線上憑證狀態協定)用於偵測憑證是否已被廢除。在Nginx的HTTPS配置中,可以透過以下程式進行OCSP回應偵測:
ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /path/to/fullchain.pem; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 10s;
其中關鍵點解讀如下:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers ... !aNULL !eNULL !EXPORT !CAMELLIA !DES !MD5 !PSK !RC4 !SEED +AES256 !kEDH +SHA256 +HMAC;
以上是Nginx的HTTPS部署與安全性效能最佳化的詳細內容。更多資訊請關注PHP中文網其他相關文章!