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 的情況)
- 安裝 Certbot
Certbot 是 Let’s Encrypt 的官方客戶端,用於自動化獲取和部署 SSL 證書。在運行 Ubuntu 的 香港VPS 或 香港雲伺服器 上,可通過以下命令安裝 Certbot 及其 NGINX 插件:sudo apt update sudo apt install certbot python3-certbot-nginx - 配置 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 - 獲取 SSL/TLS 證書
使用 Certbot 的 NGINX 插件自動生成證書並配置 NGINX:sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com根據提示輸入電子郵件地址並同意服務條款。Certbot 將自動完成證書獲取並更新 NGINX 配置以啟用 HTTPS。
- 證書自動續期
Let’s Encrypt 證書有效期為 90 天,Certbot 默認會配置自動續期任務。你可以通過以下命令測試自動續期功能:sudo certbot renew --dry-run如果需要手動續期,可運行:
sudo certbot renew
方法 2:DNS-01 驗證(適用於需要泛域名或無公網 IP 的情況)
- 安裝 Certbot
在你的 香港伺服器 上,確保已安裝 Certbot:sudo apt-get update sudo apt-get install certbot - 生成 DNS-01 驗證挑戰
使用 Certbot 運行以下命令以生成 DNS-01 驗證所需的 TXT 記錄:sudo certbot certonly --manual --preferred-challenges dns -d yourdomain.com -d *.yourdomain.comCertbot 將返回一個 TXT 記錄值,例如
_acme-challenge.yourdomain.com及對應的字符串。 - 添加 TXT 記錄
登錄你的 DNS 提供商管理控制台,在域名 DNS 設置中添加一條 TXT 記錄。記錄名稱為_acme-challenge.yourdomain.com,值設置為 Certbot 提供的字符串。保存後,等待 DNS 記錄生效(通常需要幾分鐘)。 - 驗證 DNS 記錄
使用以下命令檢查 TXT 記錄是否正確傳播:nslookup -q=TXT _acme-challenge.yourdomain.com確認返回的 TXT 值與 Certbot 提供的值一致。
- 完成驗證並獲取證書
返回 Certbot 命令行界面,按 Enter 鍵繼續。Certbot 將驗證 TXT 記錄,並在驗證通過後頒發證書。證書文件通常存儲在/etc/letsencrypt/live/yourdomain.com/目錄下。 - 配置 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 - 自動化續期(可選)
如果你的 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 的自動化功能大大簡化了證書管理和續期流程,確保你的網站在 香港伺服器 上始維持安全加密連接。