SSL憑證申請完整教學|Let’s Encrypt、Certbot 自動續期與常見錯誤排除(2026)

SSL憑證申請是網站上線前的必要步驟之一,看似只是讓網址前面出現一把小鎖,實際上卻是資安防護、瀏覽器信任度、甚至 SEO 排名的基礎關卡。憑證一旦過期或設定錯誤,輕則瀏覽器跳出警告嚇跑使用者,重則整個網站被標記為不安全。本篇文章完整說明 SSL/TLS 憑證的種類差異、Let’s Encrypt 免費憑證的 SSL憑證申請流程、Certbot 自動續期設定,並補充常見錯誤排除方法,適合工程師快速查閱與新手入門。

一、觀念釐清:SSL 與 TLS、憑證種類差異

在申請憑證之前,必須先分清楚幾個常被混用的名詞:

SSL 與 TLS 差異
名稱說明
SSL(Secure Sockets Layer)較早期的加密協定,已被淘汰,但業界仍習慣用「SSL 憑證」泛稱網站加密憑證
TLS(Transport Layer Security)SSL 的後繼者,目前實際運作的協定版本,主流為 TLS 1.2 / 1.3

也就是說,現在申請的「SSL 憑證」實際上底層跑的都是 TLS 協定,這是業界用語習慣,不影響實際申請與設定。

憑證驗證等級差異
驗證等級說明適用情境
DV(Domain Validation)僅驗證網域擁有權,申請速度快,多數免費個人網站、部落格、一般中小型網站
OV(Organization Validation)額外驗證公司登記資料企業官網、需要展示公司身分的網站
EV(Extended Validation)最嚴格審核流程,過去會在網址列顯示公司名稱金融、電商等高信任需求網站

Let’s Encrypt 提供的是 DV 等級免費憑證,對絕大多數網站與伺服器已經足夠。

對第一次接觸 SSL憑證申請流程的工程師來說,最常見的疑問是「到底要不要花錢買憑證」。實務上判斷方式很單純:如果網站不需要對外展示公司身分(例如個人網站、部落格、內部系統、一般中小企業官網),DV 等級的免費憑證就足以應付加密需求;只有在需要向使用者證明「這是某某公司官方網站」的情境下,才需要額外花費申請 OV 或 EV 憑證。理解這個分界,能省下大部分不必要的憑證採購成本。

二、Let’s Encrypt 是什麼?為什麼推薦使用

Let’s Encrypt 是由非營利組織 ISRG 提供的免費憑證簽發服務,目前是全球使用率最高的憑證來源之一。

推薦使用的原因:

  • 完全免費,無限次數申請與續期
  • 透過 Certbot 等工具可自動化申請與續期,不需人工介入
  • 憑證有效期為 90 天,強制養成定期續期習慣,降低憑證長期未更新的風險
  • 主流瀏覽器與作業系統皆已內建信任 Let’s Encrypt 的憑證鏈
💡 記住一個原則:個人網站或中小型網站,Let’s Encrypt 免費憑證通常就足夠;企業官網若需要展示公司身分,才需要考慮付費 OV / EV 憑證。

三、SSL憑證申請實作:Certbot 安裝與指令教學

Certbot 是 Let’s Encrypt 官方推薦的自動化憑證申請工具,支援多種作業系統與網頁伺服器,是目前 SSL憑證申請流程中最常用的工具之一。完整參數說明可參考 Certbot 官方文件,憑證機構說明則可參考 Let’s Encrypt 官方網站

SSL憑證申請教學示意圖 圖:SSL憑證申請流程示意(Let’s Encrypt + Certbot)
# Ubuntu / Debian 系統安裝 Certbot
sudo apt update
sudo apt install certbot python3-certbot-nginx -y

# CentOS / RHEL / Rocky Linux 系統安裝 Certbot
sudo dnf install certbot python3-certbot-nginx -y

# 申請憑證(Nginx 環境,自動設定)
sudo certbot --nginx -d example.com -d www.example.com

# 申請憑證(僅取得憑證檔案,手動設定伺服器)
sudo certbot certonly --nginx -d example.com

# 查看目前已申請的憑證
sudo certbot certificates

# 手動測試續期(不會真的更新,僅測試流程是否正常)
sudo certbot renew --dry-run
💡 工程師提醒:申請前務必確認網域的 DNS 已正確指向該台伺服器的 IP,Let’s Encrypt 會透過 HTTP-01 驗證方式確認網域控制權,若 DNS 尚未生效,申請會直接失敗。

四、Nginx / Apache 憑證套用設定

使用 certbot --nginxcertbot --apache 參數時,Certbot 會自動修改伺服器設定檔並套用憑證,不需要手動編輯。若是使用 certonly 取得憑證檔案,則需要自行在設定檔中指定路徑:

# Nginx 設定範例
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;
}

# 設定完成後測試語法並套用
sudo nginx -t
sudo systemctl reload nginx

Apache 環境對應指令:

sudo dnf install certbot python3-certbot-apache -y
sudo certbot --apache -d example.com -d www.example.com
sudo apachectl configtest
sudo systemctl reload httpd

五、自動續期設定:一勞永逸的做法

Let’s Encrypt 憑證效期只有 90 天,若沒有設定自動續期,過期後網站會直接跳出瀏覽器安全警告。Certbot 安裝時通常會自動建立排程,但建議手動確認:

# 確認 systemd timer 是否已啟用(多數發行版預設已有)
sudo systemctl list-timers | grep certbot

# 若沒有自動排程,可自行加入 crontab
sudo crontab -e

# 加入以下這行,每天凌晨 3 點檢查並自動續期
0 3 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"
💡 工程師提醒:Certbot 只會在憑證剩餘效期不足 30 天時才會實際續期,每天執行 renew 指令是安全的,不會造成重複申請或被 Let’s Encrypt 的申請次數限制擋下來。

六、憑證種類快速判斷表

依網站類型選擇憑證
網站類型建議憑證
個人部落格 / 作品集Let’s Encrypt 免費 DV 憑證
中小企業官網Let’s Encrypt 免費 DV 憑證,或付費 OV 憑證
電商網站付費 OV 憑證,視金流商要求而定
金融 / 高信任需求網站付費 EV 憑證
內部系統 / 測試環境自簽憑證(Self-Signed)或內網 CA

七、完整申請檢查清單(Cheat Sheet)

以下整理一套「從零開始 SSL憑證申請並上線」的標準流程:

# 1. 確認網域 DNS 已正確指向伺服器 IP

# 2. 確認 80 / 443 Port 已在防火牆開放(否則驗證會失敗)

# 3. 安裝 Certbot 及對應的 Nginx / Apache 外掛

# 4. 執行憑證申請指令,依提示輸入 Email 與同意條款

# 5. 確認伺服器設定檔已正確載入憑證路徑

# 6. 測試設定檔語法(nginx -t / apachectl configtest)後 reload 服務

# 7. 用瀏覽器實際檢查憑證資訊,確認鎖頭顯示正常、無警告

# 8. 設定自動續期排程,並定期確認排程是否正常執行

八、常見問題 FAQ

SSL憑證申請一定要付費嗎?Let’s Encrypt 安全嗎?
不一定。Let’s Encrypt 提供的加密強度與付費 DV 憑證相同,差別主要在驗證等級與附加服務。若不需要展示公司身分(OV/EV),透過 Let’s Encrypt 免費完成 SSL憑證申請,已能滿足多數網站的加密需求。
憑證申請失敗,出現 DNS 驗證錯誤怎麼辦?
最常見原因是網域 DNS 尚未正確指向該台伺服器,或 80 Port 未對外開放導致 HTTP-01 驗證無法通過,建議先用 dig 或 nslookup 確認網域解析是否正確。
Certbot 自動續期後為什麼服務沒有生效?
憑證檔案更新後,Nginx / Apache 服務需要 reload 才會套用新憑證,建議在 renew 指令加上 --post-hook 自動觸發服務 reload,避免憑證更新了但服務還在用舊憑證。
一張憑證可以同時保護多個網域嗎?
可以。申請時使用多個 -d 參數(例如 -d example.com -d www.example.com)即可將多個網域或子網域整合進同一張憑證。
憑證過期會發生什麼事?
瀏覽器會顯示「不安全」或「憑證已過期」的警告,使用者多半會直接離開網站,也可能影響搜尋引擎的信任評分,建議務必設定自動續期。
可以在同一台伺服器申請多張憑證嗎?
可以,Certbot 支援管理多組憑證,可用 sudo certbot certificates 查看目前所有已申請的憑證與到期時間。
內部測試環境也需要申請 Let’s Encrypt 憑證嗎?
若該環境沒有對外公開的網域,Let’s Encrypt 無法驗證網域控制權,建議改用自簽憑證(Self-Signed Certificate)或內網自建 CA 簽發。
憑證到期前多久會收到通知?
Let’s Encrypt 會在憑證到期前透過申請時填寫的 Email 發送提醒信,但不建議完全依賴這封信,仍應設定自動續期排程並定期確認排程是否正常運作。

九、小結

SSL憑證申請的核心原則是:免費的 Let’s Encrypt 搭配 Certbot 自動續期,就能滿足絕大多數網站的加密需求,重點在於申請前確認 DNS 與 Port 是否就緒,申請後務必設定好自動續期排程。掌握 DV / OV / EV 的差異,就能依網站性質判斷是否需要升級到付費憑證。

實務設定時,記得申請前先確認網域解析與防火牆設定,續期排程加上服務 reload 的 Hook,並定期用瀏覽器實際檢查憑證狀態,才能避免憑證過期導致網站被標記不安全的情況發生。完成 SSL憑證申請並設好自動續期後,網站的加密防護基本上就不需要再手動維護。

本文為 SSL/TLS 憑證申請教學整理,適用於一般網站與中小型伺服器環境,企業級憑證選型仍建議依實際業務需求與金流商規範調整。