溫馨提示×

Nginx在Debian上SSL設置步驟

小樊
51
2025-09-28 08:37:04
欄目: 云計算

Nginx在Debian上的SSL設置步驟(以Let’s Encrypt為例)

1. 安裝Nginx

若未安裝Nginx,通過以下命令安裝:

sudo apt update
sudo apt install nginx

安裝完成后,Nginx會自動啟動,可通過systemctl status nginx驗證狀態。

2. 獲取SSL證書(推薦使用Certbot自動化工具)

Let’s Encrypt提供免費SSL證書,通過Certbot可簡化申請與自動續期流程:

  • 安裝Certbot及Nginx插件
    sudo apt install certbot python3-certbot-nginx
    
  • 獲取證書
    運行以下命令,替換yourdomain.comwww.yourdomain.com為你的實際域名:
    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
    
    Certbot會自動驗證域名所有權,配置Nginx,并提示輸入電子郵件(用于續期提醒)及是否開啟自動跳轉HTTPS。

3. 驗證Certbot自動配置(可選)

Certbot通常會自動修改Nginx配置文件(位于/etc/nginx/sites-available/yourdomain.com),核心配置如下:

  • HTTP監聽80端口:強制跳轉至HTTPS;
  • HTTPS監聽443端口:指定證書路徑(fullchain.pem為證書鏈,privkey.pem為私鑰)。
    若需手動調整,可編輯對應配置文件,但Certbot的自動配置已滿足基本需求。

4. 手動配置SSL(若未使用Certbot)

若選擇手動配置,需完成以下步驟:

  • 準備證書文件:將獲取的證書(.crt)、私鑰(.key)及中間證書(若有)上傳至服務器,建議存放于/etc/ssl/certs/(證書)和/etc/ssl/private/(私鑰)目錄;
  • 編輯Nginx配置文件
    打開/etc/nginx/sites-available/yourdomain.com,添加以下內容:
    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
        return 301 https://$host$request_uri;  # 強制HTTP跳轉HTTPS
    }
    
    server {
        listen 443 ssl;
        server_name yourdomain.com www.yourdomain.com;
    
        # 證書路徑
        ssl_certificate /etc/ssl/certs/yourdomain.com.crt;
        ssl_certificate_key /etc/ssl/private/yourdomain.com.key;
    
        # 加密配置(推薦)
        ssl_protocols TLSv1.2 TLSv1.3;  # 僅啟用TLS 1.2及以上版本
        ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';  # 高強度加密套件
        ssl_prefer_server_ciphers on;  # 優先使用服務器端加密套件
    
        # 可選安全增強
        ssl_trusted_certificate /etc/ssl/certs/chain.pem;  # 中間證書(若有)
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";  # 啟用HSTS
    
        # 網站根目錄
        root /var/www/yourdomain.com;
        index index.html index.htm;
    }
    
  • 啟用配置
    創建符號鏈接至sites-enabled目錄:
    sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
    

5. 測試與重啟Nginx

  • 測試配置語法
    運行以下命令,確保無語法錯誤:
    sudo nginx -t
    
    若輸出Syntax OK,則繼續下一步;若有錯誤,根據提示修改配置文件。
  • 重啟Nginx
    應用配置變更:
    sudo systemctl restart nginx
    
    或重新加載(不中斷現有連接):
    sudo systemctl reload nginx
    

6. 驗證SSL有效性

  • 瀏覽器訪問
    在瀏覽器輸入https://yourdomain.com,確認地址欄顯示鎖圖標(表示HTTPS連接成功);
  • 命令行驗證
    使用curl命令檢查SSL握手:
    curl -I https://yourdomain.com
    
    若返回HTTP/2 200,則表示SSL配置生效。

7. 設置證書自動續期(Let’s Encrypt專用)

Let’s Encrypt證書有效期為90天,Certbot會自動創建cron任務續期,但需驗證續期流程:

  • 測試續期
    運行以下命令(模擬續期):
    sudo certbot renew --dry-run
    
    若輸出Congratulations, all renewals succeeded,則表示續期正常;
  • 自動重載Nginx
    若續期成功,Certbot會自動觸發Nginx重載(通過--post-hook "systemctl reload nginx"),無需手動操作。

通過以上步驟,即可在Debian系統上為Nginx成功配置SSL證書,實現HTTPS安全訪問。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女