Skip to content

建立 2026-09-15 更新 2026-09-15

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://

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

return 301 會回傳永久重導向,瀏覽器與搜尋引擎都會記住並直接改用 HTTPS 版本存取。

官方學習資源

官方文件與影片

  • Certbot 官方使用說明 依作業系統與伺服器類型提供逐步指令。
  • 本站 影音教學 中的 TechWorld with Nana 課程,示範了從產生憑證到設定 HTTPS 重導向的完整流程。