OpenSSL: Проверка SSL Сертификата — Срок Действия

Из этой статьи вы узнаете, как подключиться к сайту по HTTPS и проверить срок действия SSL сертификата из командной строки в Linux.

Помимо срока действия, я покажу, как узнать кем выдан SSL сертификат, кому он выдан, его SHA1 отпечаток и другую полезную информацию.

Пользователи Linux могут легко проверить срок действия SSL сертификата из командной строки в Linux, с помощью утилиты openssl, которая может подключаться к удаленному сайту по HTTPS, декодировать SSL сертификат и извлекать из него всю необходимую информацию.

Дельный Совет: Если в скором времени оканчивается срок действия вашего SSL сертификата — вам будет необходимо сгенерировать новый CSR! В Linux это можно легко сделать с помощью одной строки! Читать далее →

Проверить Срок Действия SSL Сертификата

Выполните следующую команду из командной строки в Linux, чтобы узнать срок действия SSL сертификата, с помощью openssl:

$ echo | openssl s_client -servername ИМЯ -connect ХОСТ:ПОРТ 2>/dev/null | openssl x509 -noout -dates

Краткое разъяснение:

Опция Описание
-connect ХОСТ:ПОРТ Хост и порт для подключения.
-servername ИМЯ TLS SNI (Server Name Indication) расширение (имя сайта).

Информация: Выполните man s_client, чтобы ознакомиться со всеми доступными опциями.

В качестве примера, воспользуемся openssl, чтобы проверить срок действия SSL сертификата установленного на сайте https://www.shellhacks.com:

$ echo | openssl s_client -servername www.shellhacks.com -connect www.shellhacks.com:443 2>/dev/null | openssl x509 -noout -dates
notBefore=Mar 18 10:55:00 2017 GMT
notAfter=Jun 16 10:55:00 2017 GMT

OpenSSL: Проверка SSL Сертификата — Дополнительная Информация

Помимо срока действия, SSL сертификат содержит много интересной информации.

Каждый SSL сертификат содержит информацию о том, кем он был выдан, кому он выдан, его срок действия, о чем уже говорилось выше, SHA1 отпечаток SSL сертификата и прочее.

Все эти данные могут быть извлечены из SSL сертификата сайта, с помощью программы openssl из командной строки в Linux.

Проверить кто выдал SSL сертификат:

$ echo | openssl s_client -servername shellhacks.com -connect shellhacks.com:443 2>/dev/null | openssl x509 -noout -issuer
issuer= /C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3

Проверить кому выдан SSL сертификат:

$ echo | openssl s_client -servername shellhacks.com -connect shellhacks.com:443 2>/dev/null | openssl x509 -noout -subject
subject= /CN=www.shellhacks.com

Проверить срок годности SSL сертификата:

$ echo | openssl s_client -servername shellhacks.com -connect shellhacks.com:443 2>/dev/null | openssl x509 -noout -dates
notBefore=Mar 18 10:55:00 2017 GMT
notAfter=Jun 16 10:55:00 2017 GMT

Показать всю перечисленную выше информацию об SSL сертификате одной командой:

$ echo | openssl s_client -servername shellhacks.com -connect shellhacks.com:443 2>/dev/null | openssl x509 -noout -issuer -subject -dates
issuer= /C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
subject= /CN=www.shellhacks.com
notBefore=Mar 18 10:55:00 2017 GMT
notAfter=Jun 16 10:55:00 2017 GMT

Дельный Совет: Если у вас где-то локально лежит файл с SSL сертификатом, его также можно декодировать с помощью openssl из командной строки в Linux! Читать далее →

Получить SHA1 отпечаток SSL сертификата:

$ echo | openssl s_client -servername www.shellhacks.com -connect www.shellhacks.com:443 2>/dev/null | openssl x509 -noout -fingerprint
SHA1 Fingerprint=26:F8:D5:E4:3E:7A:7B:7E:72:20:15:77:FE:C7:89:E7:E4:8A:15:CF

Извлечь всю имеющуюся информацию из SSL сертификата (декодировать):

$ echo | openssl s_client -servername www.shellhacks.com -connect www.shellhacks.com:443 2>/dev/null | openssl x509 -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            03:86:f4:63:3d:34:50:a8:47:cc:f7:99:10:1f:79:1c:21:c8
    Signature Algorithm: sha256WithRSAEncryption
[...]

Показать сам SSL сертификат (в закодированном виде):

$ echo | openssl s_client -servername shellhacks.com -connect shellhacks.com:443 2>/dev/null | openssl x509
-----BEGIN CERTIFICATE-----
MIIFGDCCBACgAwIBAgISA4b0Yz00UKhHzPeZEB95HCHIMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzAzMTgxMDU1MDBaFw0x
[...]

Обобщающая таблица:

Опция Описание
-text Печатает сертификат в расшифрованном виде.
-noout Запрещает вывод закодированной версии запроса.
-subject Выводит тему сертификата.
-issuer Выводит кем был выдан сертификат.
-dates Печатает сроки действия сертификата.
-fingerprint Печатает SHA1 отпечаток закодированной версии всего сертификата.

Информация: Выполните man x509, чтобы ознакомиться со всеми доступными опциями.

2 Replies to “OpenSSL: Проверка SSL Сертификата — Срок Действия”

  1. If you’re not getting any dates out and the first openssl command is spitting out a «tlsv1 alert protocol» error and you’re using OS X, you may need to install Homebrew’s openssl and use that instead.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.