Как проверить SSL-сертификат сайта через OpenSSL?
Владимир, Барнаул 0
После обновления сертификата хочу сам убедиться, что всё встало правильно, а не ждать, пока это заметят посетители по крестику в адресной строке. Слышал, что это можно проверить через OpenSSL из терминала - как именно?
Дмитрий Акиндинов технический администратор сайтов
ответил
Проверить сертификат из терминала можно командой `openssl s_client -connect site.ru:443 -servername site.ru` (вместо site.ru — домен сайта). Она откроет соединение с сервером и выведет всю цепочку сертификатов. Чтобы сразу увидеть срок действия, эту команду комбинируют с `| openssl x509 -noout -dates` — в ответе будут две строки: `notBefore` и `notAfter`, дата начала и окончания действия сертификата.
Параметр `-servername` обязателен, если на сервере несколько сайтов на одном IP (SNI): без него сервер может отдать сертификат не того домена, который проверяется, и результат окажется обманчивым.
В выводе команды стоит смотреть на три вещи: срок действия (не истёк ли, не наступит ли это в ближайшую неделю), издателя сертификата (`issuer`) — должен быть известный удостоверяющий центр, а не самоподписанный сертификат, и полноту цепочки — помимо сертификата самого домена сервер должен отдавать и промежуточный сертификат, иначе часть браузеров и не все почтовые клиенты будут ругаться на недоверенное соединение.
Если строка терминала неудобна или нужно быстро показать результат клиенту без установки OpenSSL на его компьютер, тот же результат в наглядном виде дают онлайн-инструменты вроде SSL Labs — они дополнительно проверяют поддерживаемые протоколы и известные уязвимости настройки TLS. Для разовой проверки после обновления сертификата команды OpenSSL быстрее: результат виден сразу в том же окне, где выполнялось обновление.
Задать свой вопрос
Вопросы проходят модерацию. Ответ появляется на сайте в течение пары дней.
Вопрос отправлен. После проверки он появится на сайте вместе с ответом.
Вопрос не отправлен: нужно подтвердить согласие на обработку персональных данных.