在 ServBay 中使用第三方機構申請的 SSL 證書
在模擬生產環境進行本機開發或測試時,使用由可信第三方機構(CA)簽發的 SSL 證書能確保您的網站經由 HTTPS 安全存取,這對於測試依賴 HTTPS 的功能或讓本機環境最大程度接近生產環境至關重要。本文詳細說明如何在 ServBay 本機 Web 開發環境中配置經第三方機構簽發的 SSL 證書。
注意
請注意,由第三方 CA 簽發的 SSL 證書通常僅支援標準網域後綴(如 .com, .org, .net, .cn 等),不支援自訂非標準後綴(如 .local, .test, .demo 等),因為這些非標準網域無法公開驗證。如您的本機開發網域使用非標準後綴,建議考慮使用 ServBay 內建的 ServBay User CA 或 ServBay Public CA 功能產生受信任的本地 SSL 證書。
應用場景
- 模擬生產環境: 精確模擬生產網站的 HTTPS 配置,測試網站於 HTTPS 執行下的行為。
- 測試 HTTPS 依賴功能: 驗證需安全上下文(Secure Context)之瀏覽器 API 或功能,例如 Service Workers、Web Crypto API、Geolocation 等。
- 本地 API 開發: 為本機運行的後端 API 配置 HTTPS,讓前端可直接透過 HTTPS 呼叫。
前置條件
在開始前,請確保您已經具備下列條件:
- 已於 macOS 上成功安裝並運行 ServBay。
- 具備基礎終端機與指令行操作能力。
- 系統已安裝 OpenSSL 工具(macOS 預設自帶)。
步驟一:申請第三方 SSL 證書
首先,您需要從受信賴的第三方 CA(如 Let's Encrypt、DigiCert、GlobalSign、Sectigo 等)申請一份 SSL 證書。本節將介紹生成證書簽署請求(CSR)的步驟,此為申請證書的關鍵。
產生私鑰(Private Key)
私鑰是伺服器用來解密 SSL 加密流量的關鍵檔案,須妥善保管請勿洩漏。於終端機執行下列 OpenSSL 指令以產生 RSA 私鑰:
shopenssl genpkey -algorithm RSA -out servbay.demo.key -pkeyopt rsa_keygen_bits:20481openssl genpkey: OpenSSL 指令,用於產生私鑰。-algorithm RSA: 指定私鑰演算法為 RSA。-out servbay.demo.key: 輸出檔案名為servbay.demo.key。-pkeyopt rsa_keygen_bits:2048: 指定 RSA 私鑰長度為 2048 位元。大多情境建議以 2048 位強度為最小標準,足夠安全。
產生證書簽署請求(CSR)
CSR 為內含您的公開金鑰與申請證書所需資訊的檔案,需提交給 CA。用剛才產生的私鑰建立 CSR:
shopenssl req -new -key servbay.demo.key -out servbay.demo.csr1openssl req: OpenSSL 指令,用於處理證書簽署請求。-new: 代表建立新的 CSR。-key servbay.demo.key: 指定簽署所用的私鑰檔案。-out servbay.demo.csr: 指定輸出 CSR 檔名為servbay.demo.csr。
執行後,系統會要求您依序輸入用以填充 CSR 的資料。請依實際情況或依 CA 指示填寫。以下範例說明:
Country Name (2 letter code) [AU]:CN # 國家代碼,如 CN (中國), US (美國) State or Province Name (full name) [Some-State]:Hong Kong # 州省名稱 Locality Name (eg, city) []:Kowloon # 城市名 Organization Name (eg, company) [Internet Widgits Pty Ltd]:ServBay # 公司/組織名稱 Organizational Unit Name (eg, section) []:Development # 組織單位(可選填) Common Name (e.g. server FQDN or YOUR name) []:servbay.demo # **最重要:填寫您要申請證書的完整網域名稱(FQDN)。** Email Address []:admin@servbay.demo # 聯絡信箱(可選填) Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: # 挑戰密碼(通常留白) An optional company name []: # 可選公司名稱(通常留白)1
2
3
4
5
6
7
8
9
10
11
12請確實於
Common Name欄位輸入您於 ServBay 內計劃使用的網域,例如servbay.demo。如需多網域證書(SAN 證書),請於 CA 的申請過程中依其指示額外填寫,或使用其線上 CSR 生成工具。提交 CSR 並取得證書
請將產生的
servbay.demo.csr檔案內容複製或上傳至您選擇的第三方 CA 網站,依照其指示完成網域所有權驗證(如 DNS 記錄、HTTP 文件或信箱認證)。通過驗證後,CA 會簽發證書給您。常見收到的檔案如下:- 主證書檔案(如
servbay.demo.crt或servbay.demo.pem)。 - 一個或多個中繼憑證(證書鏈檔案,如
intermediate.crt、ca-bundle.crt)。 - 根憑證(通常無需單獨安裝,主流作業系統/瀏覽器已內建信任)。
- 主證書檔案(如
步驟二:於 ServBay 中配置第三方 SSL 證書
拿到經第三方 CA 簽發的證書後,接下來要於 ServBay 將其導入並設定至目標網站,以便支援 HTTPS 存取。
建議將自訂的證書與私鑰檔案統一存放於 /Applications/ServBay/ssl/import/tls-certs/ 目錄,方便管理。
將證書及私鑰檔案移至指定目錄
請將先前產生的私鑰(
servbay.demo.key)、主證書檔(servbay.demo.crt)以及所有中繼憑證(如intermediate.crt)一併移至 ServBay 導入目錄:shmv servbay.demo.key /Applications/ServBay/ssl/import/tls-certs/ mv servbay.demo.crt /Applications/ServBay/ssl/import/tls-certs/ # 如有證書鏈檔請一同移動 mv intermediate.crt /Applications/ServBay/ssl/import/tls-certs/ # 若有其他中繼證書也請一併移動 # mv another_intermediate.crt /Applications/ServBay/ssl/import/tls-certs/1
2
3
4
5
6合併中繼證書進主證書檔案
為確保瀏覽器能正確驗證憑證鏈,需將所有中繼憑證內容依序加至主證書(
servbay.demo.crt)檔案之後。證書鏈組成本一般為主證書、所有中繼憑證,最末根憑證(通常可略,因系統或瀏覽器已內建)。CA 會附說明文件表明請依正確順序合併。如您的中繼憑證名為
intermediate.crt,操作如下:shcat intermediate.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt1若尚有多個中繼憑證,請依 CA 指示順序分次追加。例如,順序為
intermediate1.crt→intermediate2.crt:shcat intermediate1.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt cat intermediate2.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt1
2合併後的
servbay.demo.crt即包含主證書與完整中繼憑證鏈。開啟 ServBay 管理面板
啟動 ServBay 應用程式,於選單列或 Dock 點擊 ServBay 圖示,打開管理面板。
新增或編輯網站
於 ServBay 管理面板左側導覽列,點選「網站」。
- 若您為新建網站,點擊右上角「+」按鈕。
- 如為現有網站配置證書,選取該網站後點擊編輯(鉛筆圖示)。
設定 SSL 證書
於網站設定頁面的 SSL 區塊中,您會看到不同證書簽發方式的選項。請選擇「Custom(自訂)」。
- Certificate Key File(證書私鑰檔): 點擊瀏覽,導向
/Applications/ServBay/ssl/import/tls-certs/目錄,選擇剛剛導入的私鑰檔案,如servbay.demo.key。 - Certificate File(證書檔案): 點擊瀏覽並選擇合併了中繼憑證的主證書檔,如
servbay.demo.crt。
(註:圖片路徑僅供範例,實際請以 ServBay 文件網站路徑為準)- Certificate Key File(證書私鑰檔): 點擊瀏覽,導向
設定網域名稱與網站根目錄
請於網站配置中,確保
Domain(網域名稱)欄正確填寫申請證書時所用之網域,例如servbay.demo。同時設定對應的Document Root(網站根目錄),如/Applications/ServBay/www/servbay.demo。儲存並套用配置
完成上述設定後,請點擊儲存。ServBay 將提示您套用更改並重啟相關 Web 伺服器(如 Caddy、Nginx 或 Apache)。請確認應用設定。
驗證設定
設定完成後,您可透過瀏覽器訪問網站(如 https://servbay.demo)。如一切正確,瀏覽器網址列會出現安全鎖符號,點擊即可查看證書資訊,確認所用證書為您導入的第三方 CA 簽發,且證書鏈完整。
若出現問題,請檢查以下幾點:
- 網域名稱是否與證書的 Common Name 或 SAN 完全符合。
- 私鑰與證書檔路徑是否正確填寫。
- 證書檔案是否已包含全數中繼憑證,且順序正確。
- ServBay 站點配置是否已儲存並套用。
- 您的系統是否信任簽發憑證的根 CA(主流第三方 CA 之根憑證多已預載於作業系統與瀏覽器,毋需手動安裝)。
注意事項
- 網域配對: 證書內容必須與 ServBay 站點設置的網域名稱完全一致(含子網域,若使用泛域名證書)。
- 證書有效期: 第三方證書有有效期限,到期須續約並依本文步驟更新證書於 ServBay。
- 私鑰安全: 私鑰(
.key)極為敏感,請妥善保管防止外洩。 - ServBay 內建 SSL 選項: ServBay 還提供其他便捷的 SSL 設定選擇,例如:
- ServBay User CA / Public CA: 適用於本機自訂任意後綴網域的受信任證書產生。
- ACME (Let's Encrypt): 對標準網域,ServBay 可整合 ACME 自動申請與續約 Let's Encrypt 證書。 本文自訂導入方法適合已獲得外部第三方證書的情境。
常見問題(FAQ)
Q1: 我拿到的是 .pfx 或 .p12 格式的憑證,要怎麼在 ServBay 用?
A1: .pfx 或 .p12 多為同時包含私鑰與證書鏈的檔案。請使用 OpenSSL 將其匯出為獨立的私鑰(.key)與證書(.crt):
sh
openssl pkcs12 -in your_certificate.pfx -nocerts -out your_private_key.key -nodes
openssl pkcs12 -in your_certificate.pfx -clcerts -nokeys -out your_certificate.crt1
2
2
匯出後,還需要向 CA 取得中繼證書鏈檔案,並依步驟二指引合併入 .crt 中。
Q2: 按照說明配置後,瀏覽器還是顯示「不安全連線」警告?
A2: 請檢查:
- 網域是否符合: 瀏覽器訪問的網域是否與證書完全一致?
- 證書鏈是否完整: 導入的
.crt檔案是否包含所有中繼證書且順序無誤?可用線上 SSL 檢查工具驗證證書鏈。 - ServBay 是否重啟: 請確定已應用設定並重啟 Web 伺服器。
- 瀏覽器快取: 清理瀏覽器快取或用無痕模式重試。
- 系統信任: 確認證書發行 CA 已被您的作業系統信任。
總結
只要依照本文步驟,即可在 ServBay 本機開發環境順利導入並使用經第三方機構簽發的 SSL 證書。這有助於您更精準模擬生產環境 HTTPS 部署,強化本地開發與測試流程。雖然 ServBay 提供多種便捷 SSL 配置方式(如 ACME、ServBay CA),但學會自訂匯入第三方證書對有特殊需求或需遷移現有憑證的用戶來說,仍極具參考價值。
