Showcert.

#SSL/TLS#Python

Showcert - OpenSSL для людей

Showcert - удобная замену OpenSSL. Основные принципы showcert:

OpenSSL - настоящий криптографический швейцарский нож. Он может все, в том числе и то, что очень редко нужно. При этом, OpenSSL ненавидит вас. Если вы хотите узнать какую-то типичную информацию о сертификате на сервере, например, дату его истечения или для каких хостов он действует, OpenSSL эту простую задачу конечно же может. Вам потребуется команда вроде:

$ openssl s_client -connect github.com:443 </dev/null 2>/dev/null | openssl x509 -inform pem -text

Два перенаправления, два вызова одного бинаря, конвейер между ними, 5 не очень нужных опций… А может быть надо даже будет добавить еще один пайп и grep, чтобы извлечь нужное. А если захотите посмотреть сертификат SMTP сервера через STARTTLS - то будет еще сложнее. Если вы только открываете пиво и режете колбасу, простой нож с открывалкой удобнее, чем мультитул с восемьюдесятьютремя инструментами.

Сравните с showcert:

$ showcert github.com
IP: 140.82.121.3
Names: github.com www.github.com
notBefore: 2023-02-14 00:00:00 (7 days old)
notAfter: 2024-03-14 23:59:59 (387 days left)
Issuer: C=US O=DigiCert Inc CN=DigiCert TLS Hybrid ECC SHA384 2020 CA1

Сложно забыть этот синтаксис.

# View Google SMTP server cert. starttls mode selected automatically. Same for POP3/IMAP and any simple TLS service
$ showcert smtp.google.com:25

# Save full chain of google.com certificates to local PEM file
$ showcert --chain -o pem google.com > google-fullchain.pem

# Warn about any LetsEncrypt cert which will expire in 50 days or less
# :le is just special token, replaced to /etc/letsencrypt/live/*/fullchain.pem
$ sudo showcert -q :le -w50 || echo panic
/etc/letsencrypt/live/my.example.com/fullchain.pem expires in 47 days
panic