
# 用 OpenSSL 檢查同輪換 TLS 憑證:IT 人必學嘅基本功
而家好多公司都開始行「零信任」同加密流量,TLS 憑證(certificate)就係成個系統嘅命脈。憑證一到期,網站即刻變「不安全」,用戶彈警告、API 斷線、甚至成條服務鏈死埋。作為 IT 人,識得用 command line 快速檢查同管理憑證,係基本求生技能。
今日就用 **OpenSSL 檢查憑證**做切入點,教你由頭到尾點樣睇清楚一個憑證嘅狀態、有效期,仲有到期前點樣自動提醒自己。
## 點解要識用 OpenSSL 檢查憑證
無論你係做 DevOps、保安、定係系統管理,每日都可能要面對以下問題:
– 個網站憑證幾時到期?
– 中間憑證(chain)齊唔齊?
– 憑證對唔對得上個 domain(SAN)?
– 有冇用緊弱加密或者過期嘅 TLS 版本?
呢啲問題全部可以用 OpenSSL 一條 command 答到你,唔使裝任何 GUI 工具。
## Step 1:睇遠端憑證嘅有效期
想知一個網站張憑證幾時到期,用 `s_client` 連過去就得:
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates
輸出會類似:
notBefore=Jan 1 00:00:00 2026 GMT
notAfter=Dec 31 23:59:59 2026 GMT
`notAfter` 就係到期日。見到得返兩三個月,就係時候計劃輪換。
## Step 2:檢查 SAN(Subject Alternative Name)
好多時憑證到期唔係問題,問題係憑證冇包含新加嘅子域名。用呢條 command 睇 SAN:
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -ext subjectAltName
如果新加咗 `api.example.com` 但 SAN 入面冇,個 API 就會彈憑證錯誤。
## Step 3:睇憑證鏈(chain)齊唔齊
中間憑證漏咗,用戶手機或舊系統就唔認你張憑證。檢查方法:
openssl s_client -connect example.com:443 -showcerts 2>/dev/null
數下 `BEGIN CERTIFICATE` 有幾多個,正常應該至少兩個(server cert + intermediate cert)。
## Step 4:寫個到期檢查 script 自動提醒
唔想成日手動 check,可以寫個簡單 script,將到期日同今日比較:
#!/bin/bash
DOMAIN="example.com"
EXPIRY=$(echo | openssl s_client -connect "$DOMAIN":443 -servername "$DOMAIN" 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
EXPIRY_EPOCH=$(date -j -f "%b %d %H:%M:%S %Y %Z" "$EXPIRY" +%s 2>/dev/null)
NOW_EPOCH=$(date +%s)
DAYS_LEFT=$(( (EXPIRY_EPOCH - NOW_EPOCH) / 86400 ))
if [ "$DAYS_LEFT" -lt 30 ]; then
echo "⚠️ 警告:$DOMAIN 憑證剩返 $DAYS_LEFT 日就到期!"
else
echo "✅ $DOMAIN 憑證仲有 $DAYS_LEFT 日"
fi
將呢個 script 放埋入 cron 每日行一次,憑證就唔會再神不知鬼不覺咁過期。
## 輪換憑證嘅實際流程
檢查完發現要輪換,基本流程係:
1. 生成新嘅 CSR(certificate signing request)
2. 交俾 CA(憑證機構)簽發,或者用 Let’s Encrypt 自動簽
3. 下載新憑證 + 中間憑證
4. 更新到 web server / load balancer
5. 重啟服務,再用上面 Step 1 確認新 `notAfter`
如果用 Let’s Encrypt,直接 `certbot renew` 就搞掂,仲可以設自動續期。
## 總結
OpenSSL 檢查憑證睇落簡單,但係真正救過好多 IT 人一命——尤其係半夜收到「網站爆咗」電話嗰陣。花少少時間學熟呢幾條 command,寫埋個監察 script,你就唔會再俾憑證到期呢啲低級錯誤搞到焦頭爛額。
🔗 參考資料:NVD NIST 漏洞資料庫
下篇再同大家分享多啲系統管理嘅實戰技巧,記得 keep 住跟進。



