使用 ACME 方式於 ServBay 申請 SSL 憑證
ServBay 支援使用 ACME 協議,自動為您的本機開發網站申請 SSL/TLS 憑證。ACME(自動化憑證管理環境,Automated Certificate Management Environment)是一個用於自動化管理憑證生命週期(包含申請、續期與吊銷)的標準協議。透過 ServBay 提供的 ACME 管理面板,您可以輕鬆為本機網站配置受信任的 SSL 憑證,這對於模擬正式環境、測試 HTTPS 相關功能至關重要。
ServBay 預設優先使用 ZeroSSL 簽發憑證,但您也可以彈性選擇 Let's Encrypt 或 Google Trust Services 等其它支援 ACME 的憑證簽發機構(CA)。
TIP
為了讓本機開發環境與生產環境最大程度一致,選用受信任的 SSL 憑證格外重要。ServBay 的 ACME 功能讓這個流程簡單又高效。
核心概念說明
在開始之前,先瞭解以下核心概念,有助於更順利使用 ServBay 的 ACME 功能:
- ACME 協議: 一套開放標準協議,用來自動化憑證簽發機構(CA)與伺服器間的交互,實現憑證自動申請、續期與管理。
- DNS-01 驗證(DNS API 方式): ACME 協議支援多種網域所有權驗證方式。ServBay 主要採用 DNS-01 方式,即 CA 會要求您在網域的 DNS 記錄中新增一項特定 TXT 記錄。只要成功被驗證存在且內容正確,CA 即能確認您擁有該網域的控制權。這種方式的優點包括:
- 無須讓本機開發環境能從公網存取。
- 即使本地 80/443 埠被防火牆或 ISP 阻擋也能驗證。
- 外部帳號綁定(EAB,External Account Binding): 某些 CA(如 Google Trust Services 或 ZeroSSL)首次使用 ACME 協議申請時,需透過 EAB 進行帳號綁定(ServBay 內建 acme.sh 客戶端);這通常需一組 Key ID 和 HMAC Key。
- ECC 與 RSA 憑證:
- RSA: 傳統加密演算法,相容性佳,但為了安全需較長金鑰(如 2048 或 4096 位元),計算負載較高。
- ECC(橢圓曲線加密): 現代加密技術,在同等安全下金鑰長度大幅縮短(如 256 或 384 位元)。ECC 憑證效能佳,握手速度快、省頻寬且可提升前向保密性。ServBay 預設建議採用 ECC 憑證。
前置條件
ServBay 透過 DNS API 方式發起 ACME 憑證申請,無需讓您的本機網站能被網際網路存取。開始申請 SSL 憑證前,請確定已完成以下準備:
- 擁有網域: 需有一個已註冊且可控 DNS 的網域名稱。
- 取得網域 DNS 服務商的 API Key: ACME 申請過程將自動以 DNS API 新增/刪除驗證用 TXT 記錄,因此需從網域解析供應商(通常是 DNS 託管平台,未必為域名註冊商)取得 API Key 或相關認證資訊。可於
acme.sh
官方 Wiki How to use DNS API(英文)查詢支援之 DNS 服務商及認證方式,依您的 DNS 服務商選擇相應說明操作。 - 獲取 EAB 資訊(如 Google Trust Services 或首次申請 ZeroSSL): 若選擇 Google Trust Services 簽發憑證,需自 Google Cloud 取得 EAB 資訊,請參閱 Google Cloud 官方說明(英文):Obtaining EAB credentials from Google Cloud。ZeroSSL 初次申請時也可能需郵箱驗證或 API Key。
在 ServBay 中以 ACME 申請 SSL 憑證
請按照以下步驟,在 ServBay 內以 ACME 方式為您的本機開發網站申請 SSL 憑證:
開啟 ServBay 管理面板
啟動 ServBay,透過系統選單列圖示或 Dock 圖標進入管理面板。前往 SSL 憑證管理
於面板左側導覽欄點選SSL 憑證
。開始申請新憑證
於 SSL 憑證管理頁面右上點擊+
按鈕,並選擇申請新憑證
。填寫基礎憑證資訊
- 憑證名稱: 為憑證指定便於辨識的名稱(如:
servbay-demo-ssl
)。 - 用途: 選擇
TLS/SSL
。 - 申請方式: 選擇
ACME
。
- 憑證名稱: 為憑證指定便於辨識的名稱(如:
選擇憑證簽發機構(CA)
於簽發方
下拉選單選定憑證簽發單位。預設為ZeroSSL
,可以依需求改為Let's Encrypt
或Google Trust Services
。以下以ZeroSSL
示範。選取 DNS API 服務商
於DNS API 服務提供商
下拉選單選取該網域實際使用的 DNS 服務商。本例以Cloudflare
為例。請留意,擇定的是實際管理 DNS 解析的平台,非域名註冊商(若兩者不同)。決定憑證簽發算法與金鑰長度
- 演算法: 預設與建議選用
ECC
,效能與安全性更佳;若需考慮舊裝置相容亦可選擇RSA
。 - 金鑰長度: ECC 建議選用
384
位元,安全性已充足。若 RSA,常見有2048
或4096
位元可選。
- 演算法: 預設與建議選用
設定驗證資訊
依您所選的簽發方
與DNS API 服務商
,下方會出現對應欄位,請填入所需驗證資訊。- ZeroSSL 可能需輸入電子郵件信箱。
- Cloudflare DNS API 需填 API Key 或其他認證細節,請參考
acme.sh
Wiki 相關教學,按規定填寫。
WARNING
注意:僅粘貼 API Key 或密鑰的值,請勿在欄位填入
export
等 shell 命令前綴。設置網域名稱
於網域
欄位輸入要申請憑證的網域(例:servbay.demo
或*.servbay.demo
)。若需為泛域名(如*.servbay.demo
)申請,請確認 DNS 服務商支援自動化新增泛域名 TXT 記錄。啓動申請程序
確認所有資訊無誤後,點擊申請
按鈕。ServBay 將調用內建acme.sh
工具,依您填入的 DNS API 資訊自動進行驗證並向 CA 申請憑證。
申請過程可能需花費數分鐘,取決於 DNS 記錄傳播與 CA 處理速度。申請進度可於 ServBay 日誌或憑證列表查閱。成功後,新取得的憑證將顯示於 SSL 憑證
列表。
將憑證應用於 ServBay 網站設定
申請到 ACME 憑證後,可將其配置到 ServBay 管理之網站:
- 前往管理面板左欄
網站
。 - 選取欲啟用 SSL 憑證的網站,點擊右側編輯(鉛筆)圖示。
- 於網站設定詳情頁找到
SSL 憑證
選項。 - 自下拉清單選擇您剛剛取得的 ACME 憑證名稱。
- 請確認
啟用 SSL
開關已開啟。 - 儲存網站設定。網站即已啟動 HTTPS 存取。
ACME 憑證之續期
ACME 簽發之憑證(如 Let's Encrypt 或 ZeroSSL)一般有效期為 90 天。為確保網站 HTTPS 長期有效,須於過期前完成續期。
ServBay 會自動監控透過 ACME 申請的憑證到期情況,並在即將到期時,利用原有 DNS API 資訊自動發起續期申請。
正常情境下,只要 DNS API 憑證有效且 DNS 服務穩定,您毋需手動介入續期,ServBay 會在背景自動處理。
常見問題(FAQ)與故障排解
- 申請失敗,顯示 DNS 驗證失敗?
- 務必檢查所填的 DNS API 憑證是否正確,並確認已取得編輯 TXT 記錄權限。
- 定認您於 ServBay 選擇之
DNS API 服務商
是否和實際使用的 DNS 服務商一致。 - DNS 記錄更新需全網同步,有時需等待幾分鐘甚至更久,請稍後再試。
- 檢查網域拼寫是否正確。
- 申請失敗,出現 EAB 錯誤提示?
- 使用 Google Trust Services 或 ZeroSSL 首次申請時,請確保已正確取得並填妥 EAB 資訊。
- 若前次成功本次失敗,EAB 資訊可能已過期或失效,需重新申請。
- 出現速率限制(Rate Limit)提示?
- CA 機構會針對特定網域或 IP 限定申請頻率(速率限制)。若短時間反覆或大量申請,將觸發限制。請等待數小時或數日後再嘗試。
- 憑證申請成功,但網站瀏覽仍顯示不安全?
- 請確認於 ServBay 網站設定已套用新憑證並啟動 SSL。
- 嘗試清除瀏覽器快取或用無痕模式存取。
- 檢查本機 Hosts 檔案及網路設定是否正確指向 ServBay。
- ServBay 什麼時候會自動啟動續期? ServBay 一般會在憑證到期前數日(如 30 天)自動嘗試續期。只要 ServBay 程式在運行中,且網路正常,續期將於背景靜默執行。
總結
ServBay 所提供的 ACME 功能,讓開發者可輕鬆以 DNS API 模式,於本機開發環境自動申請和管理受信任的 SSL/TLS 憑證,不僅大幅簡化操作流程,更協助打造高度仿真的 HTTPS 開發環境,有效提升測試與開發效率。
希望本文能幫助您順利地於 ServBay 以 ACME 配置 SSL 憑證,優化本機開發體驗。