Ssl
如何獲取 mongod 實例的公共證書資訊
在使用 MongoDB 實例的 Let’s Encrypt 自動更新證書的過程中,我想知道該實例提供的特定證書。
有沒有辦法獲取例如到期日期或任何其他資訊?
有一個小的 python3 程序可以完全滿足您的要求(使用 OpenSSL):
$ certcheck www.example.com:443 serverfault.com Host (SNI) | Port | Crt Issuer | Delta to expiry | Status -----------------+------+---------------+---------------------------+-------- www.example.com | 443 | DigiCert Inc | 213 days, 23:50:03.267476 | VALID serverfault.com | 443 | Let's Encrypt | 80 days, 13:04:26.637472 | VALID
請注意,
certcheck
接受要檢查的主機列表,您需要使用 OpenSSL 編寫腳本。僅使用 OpenSSL、sed 和 bash:
$ openssl s_client \ -servername www.example.com \ -connect www.example.com:443 2>&1 < /dev/null \ | sed -nre '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' \ | openssl x509 -in - -enddate -noout notAfter=Dec 25 23:59:59 2021 GMT
來自
man x509
:-enddate Prints out the expiry date of the certificate, that is the notAfter date. -dates Prints out the start and expiry dates of a certificate. -checkend arg Checks if the certificate expires within the next arg seconds and exits nonzero if yes it will expire or zero if not.
替換
www.example.com:443
為<your_mongodb_host>:27015
。