SSL 憑證與 ServBay CA 疑難排解
本文提供 ServBay 本地開發環境中 SSL 憑證與 ServBay CA 的常見問題及排解方法。
為什麼我在瀏覽器中會提示 SSL 憑證不被信任?
當你在瀏覽器中開啟由 ServBay 托管的本地網站時,若遇到以下類似的警告畫面,通常代表 SSL 憑證配置有誤:
- Chrome / Edge:
Your connection is not private
(你的連線不是私人連線)- 錯誤代碼
NET::ERR_CERT_AUTHORITY_INVALID
- 錯誤代碼
NET::ERR_CERT_COMMON_NAME_INVALID
(雖然較少見,若憑證與域名不符仍可能出現)
- Firefox:
Warning: Potential Security Risk Ahead
(警告:前方有潛在安全風險)- 點選「進階」後可能看到錯誤代碼
SEC_ERROR_UNKNOWN_ISSUER
- 錯誤代碼
SSL_ERROR_BAD_CERT_DOMAIN
(若憑證與域名不符)
- Safari:
This Connection Is Not Private
(此連線非私人連線)Safari can't verify the identity of the website "your-domain.test"
(Safari 無法驗證網站「你的網域.test」的身份)
產生這些問題最常見的原因是 ServBay User CA
與 ServBay Public CA
沒有正確安裝且信任。其原因可能包括:
- ServBay 的根憑證未被新增至系統信任列表。
- 你曾在 MAMP / Laravel Herd 等其他本地開發平台中使用過相同域名(如
myapp.test
),導致這些工具的憑證和 ServBay 的憑證衝突,或是它們自身出現憑證系統問題,使瀏覽器快取了錯誤的信任信息或憑證。
解決方案
請按照下列步驟操作:
- 打開 ServBay
- 前往 設定 (Settings),尋找 ServBay Root CA 區塊。
- 點選 重新安裝 ServBay Root CA(Reinstall ServBay Root CA)。ServBay 將自動嘗試修復根憑證的安裝與信任問題。
- 完全關閉並重新開啟你的瀏覽器(確保所有視窗與進程皆已關閉,以清除 SSL 狀態快取)。
- 重新瀏覽你的网站。這時 SSL 憑證錯誤應已排除。
若問題依舊:
這通常表示系統中存在舊的、衝突的或無效的憑證,尤其曾用其它工具(如 MAMP 或 Herd)為相同域名生成過憑證。
- 開啟 macOS 的 鑰匙圈存取(Keychain Access) 應用程式(於「應用程式」>「工具程式」中可找到)。
- 在右上角搜尋框輸入出問題的域名(如
myapp.test
,若不確定也可嘗試搜尋mamp
或herd
關鍵字,確認有無相關的憑證機構)。 - 在頂部「類型」中,篩選 憑證(Certificates)。
- 在搜尋結果中,找到所有與該域名相關的 SSL 憑證。特別注意發行者 (Issuer) 是否為
ServBay User CA
、MAMP Development CA
、Laravel Herd CA
等或類似名稱。 - 選中所有與問題網域相關的憑證(尤其那些非由
ServBay User CA
發行、或看起來可疑者),然後按下Delete
鍵將其刪除。可能須輸入系統密碼確認。請留意僅刪除與本地開發域名有關的憑證。 - (可選但建議) 在鑰匙圈存取再次搜尋
ServBay User CA
與ServBay Public CA
,確認憑證存在且圖示上沒有紅色 "x"(代表不信任)。如顯示未被信任(有紅叉),可嘗試雙擊憑證,展開「信任(Trust)」區域,將「使用此憑證時(When using this certificate)」設為「始終信任(Always Trust)」。 - 返回 ServBay 應用程式。
- 前往 設定(Settings) -> ServBay Root CA。
- 點選 重新建立所有 ServBay User 憑證(Recreate All ServBay User Certificates)。這會為所有由 ServBay 管理的網站重新生成新的 SSL 憑證。
- 重新啟動你的 Mac 電腦。這有助於確保所有服務及系統元件均加載了最新憑證與信任設定。
- 重新開啟瀏覽器,再次嘗試連線至你的網站。
透過增列這些常見錯誤訊息,使用者能更迅速判斷問題是否來自 SSL 憑證信任,並直接找到解法。
SSL 憑證遺失怎麼辦?
使用 ServBay 進行本地網站開發時,有時會遇到網站的 SSL 憑證檔案意外遺失的情形。這會導致你的 Web 伺服器(如 Nginx、Caddy 或 Apache)無法啟動或載入網站,並在日誌中出現與憑證檔相關的錯誤訊息。
問題描述
當 ServBay 為本地網站自動簽發的 SSL 憑證(.crt
與 .key
檔)遺失時,你可能會在 Web 伺服器錯誤日誌中看見類似訊息。這些錯誤大多表示伺服器找不到指定憑證檔路徑或無法讀取。
以下列舉部份典型錯誤訊息:
Nginx 錯誤舉例:
nginx: [emerg] cannot load certificate "/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt, r) error:10000080:BIO routines::no such file)
nginx: configuration file /Applications/ServBay/package/etc/nginx/nginx.conf test failed
2
Caddy 錯誤舉例:
Error: loading http app module: provision http: getting tls app: loading tls app module: provision tls: loading certificates: open /Applications/ServBay/ssl/private/tls-certs/servbay.host/ser3vbay.host.crt: no such file or directory
Apache 錯誤舉例:
AH00526: Syntax error on line 15 of /Applications/ServBay/package/etc/apache/vhosts/servbay.host.conf:
SSLCertificateFile: file '/Applications/ServBay/ssl/pri3vate/tls-certs/servbay.host/servbay.host.crt' does not exist or is empty
2
這些訊息的核心意義都一樣:Web 伺服器指定的 SSL 憑證檔不存在或無法存取。
解決方案
針對透過 ServBay 自動簽發的本地網站 SSL 憑證,ServBay 提供便捷的自動偵測與再簽發機制以解決憑證遺失問題。
請依下列步驟操作:
- 啟動 ServBay 程式: 確保 ServBay 程式正在執行。
- 進入網站列表: 在 ServBay 左側選單中點選 網站。
- 選擇有問題的網站: 在網站列表中找到 SSL 憑證遺失的本地站點名稱,點擊進入詳情。
- 自動偵測與簽發: ServBay 載入該網站配置時,會自動偵測所需 SSL 憑證檔是否存在。若發現缺失(如缺
.crt
或.key
檔),ServBay 會自動再簽發並部署新版憑證檔至正確目錄(如/Applications/ServBay/ssl/private/tls-certs/你的網域/
)。 - 重啟 Web 伺服器: 憑證檔更新後,需重啟負責該網站的 Web 伺服器套件(Nginx、Caddy 或 Apache 等),才能重新載入憑證。請於左側選單點選 軟體包,找到對應伺服器,並點擊其旁的重啟按鈕(一般是循環箭頭圖示)。
- 確認問題解除: Web 伺服器重啟後,請用瀏覽器經由 HTTPS 重新訪問你的本地網站(如
https://你的網域
)。若正常載入且經由 HTTPS 連線,問題即已解決。
注意事項
- 本解法僅適用於 ServBay 自動簽發的本地網站 SSL 憑證。如你所用為自行導入的自定憑證,遺失後 ServBay 不會再自動簽發,必須自行手動找回或重新取得並導入憑證檔。
- ServBay 採用內建 ServBay User CA 為本地網站簽發憑證,供本地環境實現 HTTPS。若在瀏覽器訪問本地 HTTPS 網站時仍顯示憑證不被信任,可能由於 ServBay User CA 未被你的系統或瀏覽器信任。請參考 ServBay 關於信任 ServBay CA 的文檔進行設置。
- ServBay 提供資料備份功能,涵蓋網站配置與 SSL 憑證備份。定期備份有助意外發生時迅速回復數據。
常見問題(FAQ)
Q: 為什麼 ServBay 會自動簽發本地網站的 SSL 憑證?
A: ServBay 目標是打造完整的本地開發平台。為模擬正式環境及方便開發者調試 HTTPS 應用,ServBay 會用內建 ServBay User CA 為你創建的本地站點自動簽發 SSL 憑證,支援本地 HTTPS 存取。
Q: 可否使用自申請的 SSL 憑證?
A: 可以,ServBay 支援匯入並使用你自己的 SSL 憑證(含 ACME / Let's Encrypt 申請者)。本排錯指南僅適用 ServBay 自動產生的憑證。
Q: 重新簽發憑證安全嗎?
A: 安全。在本地開發環境下,ServBay 只針對你本機開發與測試,再簽發由 ServBay User CA 簽名之憑證。這不會影響你網站於公網的安全性。
總結
ServBay 提供便捷機制管理本地開發環境的 SSL 憑證。當 ServBay 自動簽發之本地網站 SSL 憑證意外遺失時,只需簡單幾步,ServBay 即可自動偵測並再次簽發憑證,讓你迅速恢復本地網站的 HTTPS 存取。