Nginx 配置 SSL(HTTPS)詳解

隨着互聯網安全性的日益重要,HTTPS 協議逐漸成爲網站加密通信的標配。Nginx 作爲一款高性能的 HTTP 和反向代理服務器,自然支持 SSL/TLS 加密通信。本文將詳細介紹如何在 Nginx 中配置 SSL,實現 HTTPS 的訪問。

一、準備 SSL 證書

首先,我們需要準備 SSL 證書。你可以選擇從證書頒發機構(CA)購買商業證書,也可以自己生成自簽名證書。自簽名證書雖然免費,但不會被瀏覽器信任,僅適用於測試環境。

如果你選擇購買商業證書,通常會獲得以下文件:

  1. 證書文件(例如:example.com.crt)

  2. 私鑰文件(例如:example.com.key)

  3. 中間證書文件(如果有的話)

二、安裝 SSL 模塊

Nginx 默認支持 SSL 模塊,因此通常無需額外安裝。但爲了確保 SSL 功能可用,你可以檢查 Nginx 的編譯參數中是否包含了--with-http_ssl_module

三、配置 Nginx SSL

  1. 打開 Nginx 配置文件,通常位於/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf

  2. http塊中,配置 SSL 相關參數。示例如下:

http {
    ...
    
    server {
        listen 443 ssl;
        server_name example.com;
        
        ssl_certificate /path/to/example.com.crt;  # 證書文件路徑
        ssl_certificate_key /path/to/example.com.key;  # 私鑰文件路徑
        
        # 如果有中間證書,也需要配置
        ssl_trusted_certificate /path/to/intermediate.crt;
        
        # 其他SSL配置參數
        ssl_protocols TLSv1.2 TLSv1.3;  # 支持的協議版本
        ssl_ciphers HIGH:!aNULL:!MD5;  # 加密套件
        ssl_prefer_server_ciphers on;  # 優先使用服務器端的加密套件
        
        # 其他server配置...
    }
    
    ...
}
  1. 保存並關閉配置文件。

  2. 檢查 Nginx 配置文件的語法是否正確:

nginx -t
  1. 如果語法正確,重新加載或重啓 Nginx 使配置生效:
nginx -s reload  # 重新加載配置
# 或
systemctl restart nginx  # 重啓Nginx服務

四、測試 HTTPS 訪問

現在,你的 Nginx 服務器已經配置了 SSL,可以通過 HTTPS 協議訪問了。在瀏覽器中輸入https://example.com,檢查是否能夠成功訪問並顯示安全的連接標識(如綠色鎖頭)。

此外,你還可以使用命令行工具(如opensslcurl)來測試 HTTPS 連接和證書的有效性。

五、優化與安全性考慮

  1. 啓用 HSTS(HTTP Strict Transport Security):通過在響應頭中添加Strict-Transport-Security字段,強制瀏覽器只通過 HTTPS 訪問網站。

  2. 啓用 OCSP Stapling:通過在線證書狀態協議(OCSP)檢查證書的有效性,提高證書驗證的效率。

  3. 使用更強大的加密算法和協議:根據安全性的要求,可以調整ssl_ciphersssl_protocols等參數,使用更強大的加密算法和協議版本。

  4. 定期更新和更換證書:商業證書通常有有效期限制,需要定期更新。同時,爲了增強安全性,也可以定期更換證書。

通過以上步驟,你可以成功在 Nginx 中配置 SSL,實現 HTTPS 的訪問。記得在配置過程中注意安全性考慮,並根據實際需求進行相應的優化。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Wl_cJ7k88030mfakXtvVBA