SSL 憑證到期
本頁說明 go-web-monitor 如何取得 SSL 憑證剩餘天數,以及表格中的顏色門檻。
取得方式
util.CheckExpire()(internal/util/ssl.go:11)在 HTTP 請求有回應後執行:
- 從網址去掉
https://前綴,取第一個/之前的字串當作主機名稱。 - 以
tls.Dial連線<host>:443,使用系統預設的憑證驗證。 - 讀取對方送出的第一張憑證(葉憑證)的
NotAfter。 - 剩餘天數 =
NotAfter距今的小時數 ÷ 24,無條件捨去為整數。
任何一步失敗都回傳 0,表格顯示 N/A。
顏色門檻
| 剩餘天數 | 表格顯示 | 顏色 |
|---|---|---|
| > 30 | N Days |
綠 |
| 8–30 | N Days |
黃 |
| 1–7 | N Days |
紅 |
| 0 或無法取得 | N/A |
紅 |
到期天數只顯示在表格中,不會觸發 Email 告警;告警只針對離線(見 告警規則)。
取不到憑證的情況
| 情況 | 原因 |
|---|---|
以 http:// 監控的網站 |
前綴 http:// 不會被去除,主機名稱解析成 http:,連線失敗 |
網址帶自訂埠(如 https://example.com:8443) |
主機名稱含埠號,再接上 :443 後位址無效;憑證一律只從 443 埠取得 |
| 憑證驗證失敗(自簽、過期、主機名稱不符) | tls.Dial 使用預設驗證,驗證失敗即回傳錯誤 |
| HTTP 請求本身失敗 | 不會執行 SSL 檢查 |