Showcert - OpenSSL для людей
Showcert - удобная замену OpenSSL. Основные принципы showcert:
- Уметь все, что нужно почти каждый день, покрывать 90+% “сертификатных” потребностей по правилу Парето.
- Если какой-то редкой функции не будет, и раз в год пользователю придется воспользоваться OpenSSL - ну и ладно
- Простые вещи должны делаться легко и просто. Более сложные - чуть сложнее.
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