Ssl
您如何測試 HTTPS 站點以獲取已撤銷的證書?
我目前正在使用 nagios 進行監控,包括使用
check_http
選項檢查即將到期的 SSL 證書等。我想做的是包括為我監控的每個站點測試已撤銷的證書。聽起來很容易,對吧?好吧:
check_http
似乎沒有檢查撤銷的證書。至少,它最近發生的時候沒有發出嗶嗶聲,這導致了一些混亂- Openssl 的
verify
has-crl_check
和-crl_check_all
,這很好,但我更關心 OSCP 而不是 CRL(因為這是瀏覽器關心的)- Openssl 有一個
oscp
模式,但看起來我必須做很多工作才能將證書放在正確的位置,找出 OSCP 伺服器的位置等。我找到了一堆關於編寫程式碼來進行 OSCP 檢查的文章,但是必須有一個很好的程序可以做到這一點,對吧?我想要的是一張 Nagios 檢查,或者我可以用作檢查的東西。在我的完美世界中,它看起來像:
check_http_with_oscp -I (IP) -H (hostname) -p 443
任何人?
恐怕這裡只能指點一下,不過你應該可以把東西放在一起,不會有太多的痛苦。
openssl 的 s_client -showcerts 將轉儲 PEM 編碼的證書。您可以很容易地使用正則表達式提取它們中的每一個。然後通過 openssl x509 -text 管道它們以提取 OCSP url。然後可以使用 openssl ocsp 向響應者發送 OCSP 請求:
http://openssl.org/docs/apps/ocsp.html
在每種情況下,您都需要父證書,除了根證書之外,您將擁有該證書。因此,除了可能對其進行硬編碼之外,它是完全獨立的。(您也可以通過 AIA 擴展 URL 下載根證書。)