SSL-сертификат
Оригинальное название: SSL certificate
Коротко
Электронный документ, который связывает доменное имя с открытым ключом сервера. Подписан центром сертификации и нужен браузеру для защищённого соединения по HTTPS.
Что такое «SSL-сертификат»
Название устарело: протокол SSL давно заменён на TLS, но сертификаты по привычке называют SSL-сертификатами. Задачи у них две. Первая — доказать браузеру, что он разговаривает именно с сервером example.ru, а не с подменой. Вторая — дать открытый ключ, с помощью которого устанавливается шифрованное соединение. Без действующего сертификата браузер показывает предупреждение, и большинство посетителей уходит.
Сертификат выпускает центр сертификации после проверки, что заявитель контролирует домен. Для обычного сайта достаточно сертификата с проверкой домена (DV) — его бесплатно и автоматически выдаёт, например, Let's Encrypt. Сертификаты OV и EV дополнительно подтверждают организацию, но в адресной строке современных браузеров выглядят так же.
Что внутри сертификата
- Имена, для которых он действует: основной домен, www-версия, поддомены или маска вида *.example.ru.
- Открытый ключ сервера. Закрытый остаётся на сервере и в сертификат не входит; запрос на выпуск оформляют как CSR.
- Срок действия. Максимальный срок публичных сертификатов постепенно сокращается по решениям CA/Browser Forum, поэтому продление стоит автоматизировать.
- Подпись центра сертификации и ссылка на цепочку промежуточных сертификатов.
Как проверить сертификат сайта
Срок, владельца и выпустивший центр видно в браузере по значку слева от адреса. Из консоли то же показывает openssl:
echo | openssl s_client -connect example.ru:443 -servername example.ru 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates
Строка notAfter — дата окончания. Если до неё меньше месяца, а продление не настроено, пора разбираться.
Типичные проблемы
- Сертификат выпущен на example.ru, а сайт открывают по www.example.ru — браузер выдаёт ошибку несовпадения имени.
- На сервере не установлена промежуточная цепочка: в одних браузерах сайт открывается, в других — нет.
- После перехода на HTTPS в коде остались ссылки на картинки и скрипты по http, и браузер их блокирует. Как избежать этого и не потерять позиции, описано в статье о переходе сайта на HTTPS.

