HTTPS/TLS 設定
現在的瀏覽器會對沒有 HTTPS 的網站顯示「不安全」警告,搜尋引擎也會將 HTTPS 列為排名參考因素之一,因此幾乎所有對外服務的網站都需要啟用 HTTPS。這一頁說明如何取得憑證,以及在 Nginx 設定加密連線。
取得免費憑證:Let's Encrypt
Let's Encrypt 提供免費、自動化的 SSL/TLS 憑證,搭配官方工具 Certbot 可以直接幫你修改 Nginx 設定並設定自動續期:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot 會自動偵測現有的 server block,補上憑證路徑與 HTTPS 相關設定,並建立排程在憑證到期前自動續期(Let's Encrypt 憑證效期為 90 天)。
手動設定 TLS
若憑證是透過其他管道取得(例如企業內部 CA),可以手動加入以下設定:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
root /var/www/example.com;
index index.html;
}
ssl_certificate/ssl_certificate_key:分別指向憑證與私鑰檔案。ssl_protocols:只允許 TLSv1.2 與 TLSv1.3,避免使用已知不安全的舊版協定(如 SSLv3、TLSv1.0)。
將 HTTP 導向 HTTPS
啟用 HTTPS 後,通常會保留一個監聽 80 埠的 server block,專門把請求導向 HTTPS 版本,避免使用者輸入網址時漏打 https://:
return 301 會回傳永久重導向,瀏覽器與搜尋引擎都會記住並直接改用 HTTPS 版本存取。
官方學習資源
官方文件與影片
- Certbot 官方使用說明 依作業系統與伺服器類型提供逐步指令。
- 本站 影音教學 中的 TechWorld with Nana 課程,示範了從產生憑證到設定 HTTPS 重導向的完整流程。