Ssl

如何獲取 mongod 實例的公共證書資訊

  • May 26, 2021

在使用 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

引用自:https://serverfault.com/questions/1063420