服务器设置和教程 · 18 7 月, 2025

在 NGINX 上為香港伺服器配置 Let’s Encrypt SSL/TLS 證書

Let’s Encrypt 是一個由非營利組織提供的免費證書頒發機構,旨在通過推動 HTTPS 的廣泛應用,構建一個更安全、隱私友好的互聯網環境。其證書有效期為 90 天,並支持隨時更新。Let’s Encrypt 通過自動化流程簡化了證書的創建、驗證、簽名、安裝和續期等步驟,大幅降低了配置和維護 TLS 加密的複雜性。本文將詳細介紹如何在 香港伺服器 上使用 NGINX 配置 Let’s Encrypt SSL/TLS 證書,確保方案邏輯清晰且具有高可行性,適用於 香港VPS香港雲伺服器 的用戶。

配置 Let’s Encrypt SSL/TLS 證書的步驟

以下是在 香港伺服器 上使用 NGINX 配置 Let’s Encrypt SSL/TLS 證書的詳細步驟,包含兩種常用方法:HTTP-01 驗證和 DNS-01 驗證。

方法 1:HTTP-01 驗證(適用於已將域名指向伺服器 IP 的情況)

  1. 安裝 Certbot
    Certbot 是 Let’s Encrypt 的官方客戶端,用於自動化獲取和部署 SSL 證書。在運行 Ubuntu 的 香港VPS香港雲伺服器 上,可通過以下命令安裝 Certbot 及其 NGINX 插件:

    sudo apt update
    sudo apt install certbot python3-certbot-nginx
    
  2. 配置 NGINX
    確保你的 NGINX 配置文件中已正確設置 server_name 指令,指向需要保護的域名。例如,在 /etc/nginx/sites-available/your-site 中配置如下:

    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
        root /var/www/html;
    }
    

    保存後,通過以下命令驗證並重載 NGINX 配置:

    sudo nginx -t
    sudo systemctl reload nginx
    
  3. 獲取 SSL/TLS 證書
    使用 Certbot 的 NGINX 插件自動生成證書並配置 NGINX:

    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
    

    根據提示輸入電子郵件地址並同意服務條款。Certbot 將自動完成證書獲取並更新 NGINX 配置以啟用 HTTPS。

  4. 證書自動續期
    Let’s Encrypt 證書有效期為 90 天,Certbot 默認會配置自動續期任務。你可以通過以下命令測試自動續期功能:

    sudo certbot renew --dry-run
    

    如果需要手動續期,可運行:

    sudo certbot renew
    

方法 2:DNS-01 驗證(適用於需要泛域名或無公網 IP 的情況)

  1. 安裝 Certbot
    在你的 香港伺服器 上,確保已安裝 Certbot:

    sudo apt-get update
    sudo apt-get install certbot
    
  2. 生成 DNS-01 驗證挑戰
    使用 Certbot 運行以下命令以生成 DNS-01 驗證所需的 TXT 記錄:

    sudo certbot certonly --manual --preferred-challenges dns -d yourdomain.com -d *.yourdomain.com
    

    Certbot 將返回一個 TXT 記錄值,例如 _acme-challenge.yourdomain.com 及對應的字符串。

  3. 添加 TXT 記錄
    登錄你的 DNS 提供商管理控制台,在域名 DNS 設置中添加一條 TXT 記錄。記錄名稱為 _acme-challenge.yourdomain.com,值設置為 Certbot 提供的字符串。保存後,等待 DNS 記錄生效(通常需要幾分鐘)。
  4. 驗證 DNS 記錄
    使用以下命令檢查 TXT 記錄是否正確傳播:

    nslookup -q=TXT _acme-challenge.yourdomain.com
    

    確認返回的 TXT 值與 Certbot 提供的值一致。

  5. 完成驗證並獲取證書
    返回 Certbot 命令行界面,按 Enter 鍵繼續。Certbot 將驗證 TXT 記錄,並在驗證通過後頒發證書。證書文件通常存儲在 /etc/letsencrypt/live/yourdomain.com/ 目錄下。
  6. 配置 NGINX 使用證書
    編輯 NGINX 配置文件,添加 SSL 相關配置。例如:

    server {
        listen 443 ssl;
        server_name yourdomain.com www.yourdomain.com;
        ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
        root /var/www/html;
    }
    

    保存後,驗證並重載 NGINX:

    sudo nginx -t
    sudo systemctl reload nginx
    
  7. 自動化續期(可選)
    如果你的 DNS 提供商支持 API,可使用 Certbot 的 DNS 插件實現自動化續期。例如,使用 Cloudflare 的插件:

    sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini -d yourdomain.com
    

    確保提前配置好 API 憑證文件(如 cloudflare.ini)。

總結

通過以上方法,你可以在 香港VPS香港雲伺服器 上使用 NGINX 輕鬆配置 Let’s Encrypt SSL/TLS 證書。HTTP-01 驗證適用於已解析域名的場景,而 DNS-01 驗證則適用於泛域名或無公網 IP 的情況。Certbot 的自動化功能大大簡化了證書管理和續期流程,確保你的網站在 香港伺服器 上始維持安全加密連接。