Проверка 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 | Проверяет цепочку по списку корневых сертификатов | Найти, где разрывается цепочка |
| Код | Сообщение | Причина |
|---|---|---|
| 0 | ok | Цепочка собрана и доверенный корень найден |
| 10 | certificate has expired | Срок сертификата вышел |
| 18 | self-signed certificate | Сертификат самоподписанный |
| 20 | unable to get local issuer certificate | Не найден издатель: нет промежуточного или корневого |
| 21 | unable 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.