Как проверить SSL-сертификат сайта и почтового сервера
Для проверки SSL-сертификата нужны имя сервера и порт. У сайта это обычно 443, у почты порт зависит от протокола и способа включения TLS. Сначала проверьте имя, срок и цепочку сертификатов; затем сравните результат с предупреждением браузера или почтовой программы. Проверка сайта не заменяет проверку почты на том же домене.
Как проверить SSL-сертификат сайта
- Откройте проверку SSL-сертификата. Введите имя из адреса сайта, например example.com, и порт 443. Если сайт работает и с www, проверьте www.example.com отдельно.
- Сравните имя с адресами в SAN, списке имен сертификата. Проверьте начало и окончание срока действия. Сертификат для example.com не обязательно покрывает www.example.com; *.example.com не покрывает сам example.com и a.shop.example.com.
- Прочитайте результат проверки цепочки и доверия. Сохраните дату окончания и название издателя. Если адрес обслуживает CDN, результат описывает сертификат на внешнем узле CDN, а не обязательно сертификат сервера, где хранится сайт.
Сервис подключается заново при каждом запуске. Он также показывает поддерживаемые версии TLS и замечания о переходе на HTTPS. Если браузер предупреждает об ошибке, сохраните ее точный код: он поможет отделить проблему сертификата от сбоя самого TLS-соединения.
Как проверить сертификат почтового сервера
Возьмите имя входящего или исходящего сервера из настроек почтовой программы, например mail.example.com. Адрес сайта и адрес почты могут отличаться. Проверять нужно имя, с которым соединяется программа, и ее порт. Один почтовый сервер тоже может отдавать разные сертификаты на разных службах.
| Порт | Служба | Как начинается TLS |
|---|---|---|
| 443 | HTTPS: сайт | Сразу после подключения |
| 25 | SMTP: обмен между серверами | STARTTLS, если сервер его поддерживает |
| 587 | SMTP: отправка из почтовой программы | STARTTLS |
| 143 | IMAP: входящая почта | STARTTLS |
| 110 | POP3: входящая почта | STLS |
| 465 | SMTP: отправка из почтовой программы | TLS сразу после подключения |
| 993 | IMAP: входящая почта | TLS сразу после подключения |
| 995 | POP3: входящая почта | TLS сразу после подключения |
При STARTTLS соединение начинается на языке почтового протокола и затем переключается на TLS. При неявном TLS шифрование начинается сразу. Различие описано в RFC 8314. В нашем инструменте способ определяется портом; запись mail.example.com:993 задает порт прямо в адресе и имеет приоритет над отдельным полем.
- Проверьте входящую почту на том имени и порту, которые указаны в клиенте. Затем отдельно проверьте исходящую почту: ее имя или сертификат могут отличаться.
- Если имя не разрешается или почтовый порт недоступен, посмотрите предложенные MX домена. MX указывает путь входящей почты, но не обязательно адрес SMTP-сервера для отправки из вашей программы.
- Сопоставьте SAN, срок и цепочку с результатом для сайта. Если 443 проходит проверку, а 993 нет, исправлять нужно почтовую службу или ее настройки сертификата.
Ошибки SSL: имя, срок, неполная цепочка и доверие
Цепочка связывает сертификат сайта или почты с центром сертификации через промежуточные сертификаты. Доверие появляется, когда проверка доходит до известного корневого сертификата. Установка только файла сертификата без нужных промежуточных сертификатов может дать рабочее соединение одним клиентам и ошибку другим.
| Результат | Что проверить | Следующее действие |
|---|---|---|
| Истек срок / expired | Даты сертификата и часы устройства | Продлить или перевыпустить сертификат и установить его в нужную службу. |
| Имя не совпадает | Точное имя подключения и SAN | Использовать предусмотренное имя или сертификат, который его покрывает. |
| Неполная цепочка / chain incomplete | Промежуточные сертификаты на сервере | Установить цепочку по инструкции центра сертификации для своего сервера. |
| Самоподписанный сертификат | Кто выпустил сертификат | Для публичной службы установить сертификат подходящего доверенного центра. |
| Недоверенный корневой / not trusted | Частный центр и хранилище доверия клиента | Уточнить политику доверия; не подменять исправление отключением проверки. |
ERR_SSL_PROTOCOL_ERROR не указывает на одну конкретную причину: TLS-рукопожатие могло сорваться из-за протокола, настроек сервера или вмешательства сети. Так это объясняет Cloudflare. Сначала проверьте правильность имени, порта и режима TLS, затем изучите журнал сервера. Успешная проверка из другой сети не исключает проблему только на вашем устройстве.
Проверка SSL через OpenSSL в Linux
Если нужен вывод для администратора, выполните команды ниже в оболочке Linux с актуальным OpenSSL и настроенным хранилищем доверенных центров. Примеры используют условные имена: замените их своими. Первая команда проверяет сайт, вторая SMTP с STARTTLS на 587.
openssl s_client -connect example.com:443 -servername example.com \
-verify_hostname example.com -verify_return_error -showcerts </dev/null
openssl s_client -connect mail.example.com:587 -starttls smtp \
-servername mail.example.com -verify_hostname mail.example.com \
-verify_return_error -showcerts </dev/null
Параметр -servername передает имя в SNI, -verify_hostname проверяет совпадение имени, а -verify_return_error останавливает проверку при ошибке доверия. Один -showcerts только показывает присланные сертификаты и не подтверждает исправность цепочки. Назначение параметров есть в документации OpenSSL.
Что проверить после исправления
Повторите проверку каждого затронутого адреса и порта, затем откройте сайт или подключитесь почтовой программой. Если новый сертификат еще не виден, проверьте, какая служба завершает TLS и перечитала ли она файлы. При нескольких внешних узлах одного результата недостаточно для подтверждения их одинаковой настройки.
Если требуется новый сертификат, сначала составьте список имен сайта и почтовых служб, затем выберите подходящий вариант на странице SSL-сертификатов. Наличие сертификата в заказе еще не означает, что он установлен на каждом нужном порту.