首頁  >  文章  >  運維  >  Nginx的HTTPS部署與安全性效能最佳化

Nginx的HTTPS部署與安全性效能最佳化

WBOY
WBOY原創
2023-06-10 17:13:401061瀏覽

Nginx作為一款高效能的Web伺服器和反向代理伺服器,被廣泛用於應用部署和負載平衡。在安全環保意識的逐漸提升下,HTTPS也成為現代Web應用中不可或缺的一環。本篇文章將重點放在Nginx的HTTPS部署和安全效能最佳化。

一、Nginx的HTTPS部署

  1. 憑證申請

首先需要去憑證授權單位(CA)進行SSL憑證的申請。申請成功後,會得到一個憑證檔案(.crt)和一個私鑰檔案(.key)。

  1. HTTPS設定

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服務的部署後,還需要注意以下安全性效能最佳化方面的問題,以確保服務的穩定與安全:

  1. 檢測OCSP回應

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;

其中關鍵點解讀如下:

  • ssl_stapling on 開啟OCSP回應
  • ssl_stapling_verify on 開啟OCSP回應驗證
  • ssl_trusted_certificate /path/to/fullchain.pem 設定憑證鏈
  • resolver 8.8.8.8 8.8.4.4 valid=300s 設定DNS解析器
  • #out#resolver_#out 10s 設定DNS解析時間
  • DNS解析器需要配置成公認的可信任解析器,這裡配置成Google公共DNS。
    啟用HSTS
HSTS(HTTP嚴格傳輸安全性)防止使用者被劫持到HTTP頁面,從而提高安全性等級。在Nginx的HTTPS配置中,可以像下面這樣開啟HSTS:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

其中關鍵點解讀如下:

    max-age=31536000 定義HSTS頭的持續時間
  • includeSubDomains 啟用所有子網域
    啟用安全協定
預設情況下,Nginx只啟用了TLSv1和TLSv1.2,如果需要啟用其他的加密協議,可以透過以下方式配置:

ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;

其中關鍵點解讀如下:

    TLSv1.3 定義啟用的加密協定
    啟用HMAC金鑰演算法
透過HTTPS傳輸的數據,需要使用金鑰來加密數據,使用HMAC (Hash-based message authentication code)可以提升數據傳輸時的安全性。在Nginx設定檔中啟用HMAC的方法如下:

ssl_ciphers ... !aNULL !eNULL !EXPORT !CAMELLIA !DES !MD5 !PSK !RC4 !SEED +AES256 !kEDH +SHA256 +HMAC;

其中關鍵點解讀如下:

    AES256 啟用AES256加密演算法
  • # SHA256 啟用SHA256雜湊函數
  • HMAC 啟用HMAC金鑰演算法
#結論

本篇文章介紹了Nginx的HTTPS部署和安全性效能最佳化的主要知識點。在現代Web應用日益複雜的背景下,HTTPS的安全性和性能方面的要求也越來越高,作為系統管理人員,不斷更新自己的知識儲備,保持對新技術和新環境的專業化視野,是非常必要和重要的。

以上是Nginx的HTTPS部署與安全性效能最佳化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn