Bash
檢查 SSL 證書是否有效的腳本
我有多個 SSL 證書,我希望在證書過期時收到通知。
我的想法是創建一個 cronjob,它每天執行一個簡單的命令。
我知道
openssl
Linux中的命令可以用來顯示遠端伺服器的證書資訊,即:openssl s_client -connect www.google.com:443
但我沒有在此輸出中看到到期日期。另外,我必須用
CTRL
+終止這個命令c
。如何從腳本(最好使用
openssl
)檢查遠端證書的到期情況並以“批處理模式”執行,以便它在沒有使用者互動的情況下自動執行?
您的命令現在需要一個 http 請求
GET index.php
,例如。改用這個:if true | openssl s_client -connect www.google.com:443 2>/dev/null | \ openssl x509 -noout -checkend 0; then echo "Certificate is not expired" else echo "Certificate is expired" fi
true
: 只會在 eof 之後不提供任何輸入,以便 openssl 在連接後退出。
openssl ...
:您問題中的命令2>/dev/null
: 錯誤輸出將被忽略。
openssl x509
:啟動 X.509 證書數據管理。
- 這將預設從標準輸入讀取
-noout
:抑制整個證書輸出-checkend 0
: 檢查證書是否在接下來的 0 秒內過期