在 ServBay 中使用 Let's Encrypt 自動申請與管理 SSL 憑證
對於現代 Web 開發而言,在本機環境模擬生產環境極為重要,其中也包括使用 HTTPS。ServBay 已內建對 ACME (Automated Certificate Management Environment,自動憑證管理環境) 協議的支援,可讓您輕鬆透過 Let's Encrypt 這類 CA(憑證授權中心)自動申請、安裝與管理免費的 SSL/TLS 憑證。本文將完整說明如何於 ServBay 使用 Let's Encrypt 申請憑證並套用於您的本地網站。
使用 Let's Encrypt 憑證的優點有:免費、自動化流程、被大量瀏覽器信任,可協助您於本地測試網站 HTTPS、Service Workers、HSTS 等功能行為。
前置條件
在開始申請 Let's Encrypt 憑證之前,請確認您已達成以下條件:
- 擁有一組公共域名: 您必須有一組正式註冊且可用的域名(如:
servbay.demo
或yourdomain.com
)。Let's Encrypt 不會針對本地 IP 或非公開域名(例如.local
)發放憑證。 - 能夠管理域名的 DNS 記錄: ServBay 以 DNS API 方式驗證域名所有權,因此您需能登入您的域名註冊商或 DNS 服務(例如 Cloudflare、GoDaddy、AWS Route 53 等)的後台管理,並能產生自動化操作所需的 API 金鑰。
- 取得 DNS API 金鑰: 您需要依據 DNS 服務商規範產生相應的 API 金鑰或權杖。各家服務商的取得方式皆有不同。一般來說,需製作具備 DNS 記錄管理權限的 API 金鑰。可參考
acme.sh
專案的 DNS API WIKI 頁面,查詢您的供應商並了解 API 金鑰與環境變數名稱如何獲取。
申請流程
於 ServBay 透過 Let's Encrypt 申請 SSL 憑證的步驟如下:
開啟 ServBay 管理面板: 啟動 ServBay 程式後,點擊選單列圖示,選擇「管理面板」 (Manager Panel),進入網頁後台介面。
進入 SSL 憑證管理: 於 ServBay 管理面板側邊欄中,找到並點擊
SSL 憑證
(SSL Certificates) 選項。新增憑證申請: 在 SSL 憑證列表頁右上角,點圓形「+」按鈕,開啟憑證申請設定視窗。
填寫憑證資訊: 在彈出的「Request Certificate」(申請憑證) 視窗中,根據下列說明完成所需資訊:
- Common Name (通用名稱): 輸入一個能識別該憑證的名稱,例如
servbay-demo-cert
或mydomain-wildcard-cert
,方便辨識管理。 - Usage Purpose (用途): 選擇
TLS/SSL
。 - Request Method (申請方法): 選擇
ACME
。 - Issuer (發行機構): 選擇
Let's Encrypt
。 - DNS API Provider (DNS API 供應商): 從下拉選單選擇您的 DNS 服務商(如:
cloudflare
表示 Cloudflare,godaddy
表示 GoDaddy)。 - Algorithm (演算法): 建議選用
ECC
(橢圓曲線密碼學),並選擇密鑰長度384
。相較於傳統 RSA,ECC 憑證提供更小密鑰體積與更佳效能安全。 - E-Mail Address (電子郵件): 輸入您的有效信箱。Let's Encrypt 將以此通知憑證到期、續期失敗等重要訊息。
- DNS API Tokens (DNS API 權杖): 輸入 DNS 供應商指定的 API 金鑰或權杖。通常以環境變數格式提供給底層 ACME 客戶端。請參考您的 DNS 供應商官方說明或
acme.sh
DNS API WIKI,確認正確的環境變數名稱和值。重要:請勿在每行 API 內容前加上export
。 例如,若採用 Cloudflare,您可能需輸入CF_Key=sdfsdfsdffgfdg\[email protected]
(不同環境變數以\n
隔開)。 - Domain (域名): 輸入欲申請憑證的域名。若申請多組域名或泛域名(如
*.servbay.demo
),請用英文逗號,
分隔(例如:servbay.demo, www.servbay.demo, *.servbay.demo
)。注意,泛域名憑證必須採 DNS API 驗證。
請注意,圖中 Common Name 僅為範例,實際應使用更具描述性的名稱。
- Common Name (通用名稱): 輸入一個能識別該憑證的名稱,例如
送出申請: 確認所有資訊正確無誤,點擊視窗下方「Request」(申請) 按鈕。
等待申請處理完成: ServBay 將於背景啟動 ACME 客戶端,用您提供的 DNS API 資訊進行 DNS 驗證並向 Let's Encrypt 請領憑證。此過程會依 DNS 傳播速度和 Let's Encrypt 伺服器回應而有所不同,通常需數分鐘。完成後新憑證將自動加入您的 SSL 憑證清單。
憑證應用
當憑證申請成功並列於清單後,可將其套用至本地網站:
- 進入網站管理: 於側邊欄點選
網站
(Websites) 項目。 - 編輯網站設定: 找到目標網站,點擊右側的編輯(鉛筆)圖示。
- 設定 HTTPS/SSL: 在網站設定頁面,尋找 SSL/HTTPS 相關欄位,通常會有憑證來源選項。
- 選擇 ACME 憑證: 在欄位選擇
ACME
,接著於下拉選單中選擇剛剛申請的(以 Common Name 辨識)的憑證。 - 儲存變更: 儲存網站設定,ServBay 將自動重新載入配置並套用新 SSL 憑證。現在即可透過 HTTPS 存取您的本地網站。
圖為網站設定中選取 ACME 憑證界面示意。
憑證續期
Let's Encrypt 憑證有效期為 90 天。ServBay 內建自動續期功能,在您的 ACME 憑證接近過期(通常為 30 天內)時,自動嘗試用現有設定續期。您毋需額外操作。請確保 DNS API 金鑰維持有效,以便自動續期順利。如遇問題,Let's Encrypt 會同步寄信到您申請時所填信箱。
關於 ACME 協議與 DNS API 驗證
- ACME 協議: ACME 屬於自動化域名驗證與憑證發放的開放標準協議。Let's Encrypt 及 CA 憑證單位皆以 ACME 為標準與用戶端(如 ServBay 內建 ACME 客戶端)互動,實現憑證全自動申請及管理。
- DNS API 驗證: 此方式由 ACME 用戶端自動透過 DNS API 新增 TXT 紀錄至您的域名中,CA 伺服器藉由查詢此紀錄確認您的域名控制權。DNS API 驗證特別適用下列情境:
- 申請泛域名憑證(如
*.servbay.demo
)。 - 本地 ServBay 無法被公網直接存取(如處於內網環境或 ISP 封鎖 80/443 埠口)。
- 申請泛域名憑證(如
憑證演算法選用指引:ECC vs RSA
ServBay 允許您於申請時選用 ECC 或 RSA 憑證。
- RSA: 傳統公鑰加密演算法,兼容性極佳,所有瀏覽器和終端皆支援,主流密鑰長度有 2048 位與 4096 位。
- ECC: 橢圓曲線加密演算法,同級安全下所用密鑰更短(如 256 位 ECC ≈ 3072 位 RSA),效能與安全雙優勢。現代瀏覽器及作業系統均已支援 ECC。
建議: 新憑證推薦使用 ECC 並選用 384 位密鑰,以獲得最佳性能和安全。若需極致相容性(如支援極舊設備),可考慮改用 RSA。
注意事項
- DNS 傳播時間: 提交後 DNS TXT 記錄變更,全球同步仍需數分鐘至數小時。如立刻失敗,請稍候重試。
- API 金鑰安全: 您的 DNS API 金鑰有完全操控域名 DNS 記錄的權限,請務必妥善保存切勿外洩。
- Let's Encrypt 申請速率限制: Let's Encrypt 對憑證申請頻率有限制。頻繁申請或續期同一域名有可能觸發封鎖,正常透過 ServBay 自動續期一般不會達上限。
常見問題 (FAQ)
- Q: 我的域名指向本地 IP,也能用 Let's Encrypt 憑證嗎?
- A: 可以,只要您採用 DNS API 驗證。Let's Encrypt 只驗證您能否控制該網域 DNS 記錄,而不在乎該域名解析到哪個 IP。
- Q: 申請憑證失敗怎麼辦?
- A: 請先確認填入的 DNS API 金鑰正確有效且權限無誤,再檢查是否選了正確的 DNS API 供應商。有時僅因 DNS 紀錄尚未同步成功,可過幾分鐘後重試。也可檢查 ServBay 日誌,瞭解失敗原因。
- Q: 憑證多久前會自動續期?
- A: 一般會於憑證到期前 30 天內自動續期。
- Q: 能替本機
.local
網域申請憑證嗎?- A: 無法。Let's Encrypt 只發給已注冊的公開網域。若屬
.local
或本地 IP,可改用 ServBay User CA / ServBay Public CA 生出自簽(或仿造 CA 簽發)憑證作本地測試之用。
- A: 無法。Let's Encrypt 只發給已注冊的公開網域。若屬
- Q: 我的 DNS 服務商不在 ServBay 列表怎麼辦?
- A: ServBay 整合的 ACME 客戶端已支援大多主流 DNS 服務。若遇冷門供應商,可能需手動設定。可查閱
acme.sh
DNS API WIKI,確認是否被支援並依文件設定。若 ServBay 介面中未列出,建議聯絡 ServBay 客服協助。
- A: ServBay 整合的 ACME 客戶端已支援大多主流 DNS 服務。若遇冷門供應商,可能需手動設定。可查閱
總結
ServBay 結合 ACME 協議,大幅簡化本地開發環境申請與管理 Let's Encrypt SSL 憑證的流程。透過 DNS API 驗證,您可輕鬆替您的公開網域(含泛域名)取得免費、自動續期的 SSL 憑證,精確模擬生產的 HTTPS 架構,有效提升開發與測試效率。照本教學操作,即可迅速讓您的 ServBay 網站啟用安全連線。