Проверка SSL через openssl: команды и разбор вывода, коротко и с данными

Конспект страницы: 5 разделов коротко, данные на 19 октября 2026 и ответы на 3 вопроса. Полный разбор с примерами: Проверка SSL через openssl: команды и разбор вывода.

Коротко

Проверка SSL через openssl сводится к двум утилитам: s_client подключается к серверу и забирает сертификат, а x509 читает его и печатает срок, издателя и список доменов. Обе работают без доступа к серверу, как обычный посетитель. Для разовой проверки хватит одной строки: openssl s_client -connect сайт:443 -servername сайт.

Конспект по разделам

Что делает каждая команда openssl при проверке SSL

OpenSSL стоит в Linux и macOS по умолчанию. На Windows его берут из Git Bash или WSL. Сам openssl сертификаты на сайт не устанавливает: он создаёт ключ, запрос CSR и читает результат, а ставит сертификат Certbot или правка конфига веб-сервера.

Как подключиться к сайту командой openssl s_client

Ключ -connect задаёт адрес и порт, -servername передаёт имя сайта в расширении SNI. Без SNI сервер с несколькими сайтами на одном IP отдаст сертификат по умолчанию, и вы получите чужой результат. Выход из сессии: Ctrl+C, либо подайте на вход пустую строку командой echo | перед openssl.

Как прочитать срок, издателя и имена сертификата

Результат из четырёх блоков: subject (для кого выдан), issuer (кто выдал), notBefore и notAfter (начало и конец срока), Subject Alternative Name (все домены, на которые сертификат действует). Современные браузеры сверяют адрес именно со списком SAN, поэтому при ошибке «имя не совпадает» смотрите на него: что делать, если имя сертификата не совпадает. Для файла на диске подключение не нужно: openssl x509 -in fullchain.pem -noout -dates.

Что значит Verify return code в выводе openssl

Для кодов 20 и 21 переходите к проверке цепочки: как проверить цепочку сертификата.

Как проверить версии TLS командой openssl s_client

Если сервер принимает версию, в выводе появится сертификат и строка Protocol. Если нет, openssl напишет про handshake failure или no protocols available. Для старых версий ключи -tls1 и -tls1_1 в новых сборках OpenSSL могут быть отключены, и тогда проверку делают сканером.

Данные

КомандаЧто делаетКогда нужна
openssl s_clientПодключается к порту, проводит рукопожатие, печатает цепочкуПроверить, что отдаёт живой сервер
openssl x509Читает один сертификат: даты, имена, издательРазобрать полученное или файл.crt и.pem
openssl verifyПроверяет цепочку по списку корневых сертификатовНайти, где разрывается цепочка
КодСообщениеПричина
0okЦепочка собрана и доверенный корень найден
10certificate has expiredСрок сертификата вышел
18self-signed certificateСертификат самоподписанный
20unable to get local issuer certificateНе найден издатель: нет промежуточного или корневого
21unable to verify the first certificateСервер не отдал промежуточный сертификат

Данные на 19 октября 2026.

Вопросы и ответы

Как добавить SSL-сертификат через терминал, если нужен именно openssl?

Openssl создаёт ключ и CSR командой openssl req -new -newkey rsa:2048 -nodes -keyout site.key -out site.csr и проверяет готовый сертификат. Установка идёт через Certbot или через пути в конфиге веб-сервера.

Почему openssl s_client показывает сертификат другого сайта?

Не передано имя сайта. Добавьте -servername с вашим доменом, иначе сервер вернёт сертификат по умолчанию.

Как проверить ssl через openssl в Windows?

Установите Git for Windows и запустите Git Bash: там есть openssl с теми же командами. Второй путь: WSL с любым дистрибутивом Linux.