HTTPS — это HTTP поверх защищённого соединения TLS. Его задача — обеспечить конфиденциальность и целостность данных при передаче, а также помочь клиенту удостовериться, что он соединяется с нужным сервером.
Как начинается защищённое соединение
Клиент и сервер согласуют параметры соединения, выполняют криптографический обмен и устанавливают ключи для дальнейшей передачи данных. В ходе проверки сервер предъявляет сертификат, который клиент сопоставляет с именем сайта и доверенной цепочкой удостоверяющих центров.
Что проверяет браузер
- Имя сайта. Сертификат должен подходить доменному имени, к которому обращается пользователь.
- Срок действия. Сертификат не должен быть просроченным или ещё не вступившим в силу.
- Цепочка доверия. Сертификат должен быть подтверждён доверенным удостоверяющим центром либо иной явно доверенной клиенту цепочкой.
Почему возникают ошибки сертификата
Частые причины: самоподписанный сертификат, неверное доменное имя, истёкший срок, неполная цепочка или ошибки настройки виртуального хоста. Каждая из них может приводить к предупреждениям в браузере и сбоям у программных клиентов.
Базовая диагностика
Чтобы посмотреть, какой сертификат сервер предъявляет для конкретного имени, можно использовать OpenSSL:
openssl s_client -connect example.com:443 \
-servername example.com </dev/nullПри анализе проверяют SAN-имена, издателя, срок действия и результат проверки цепочки. Для автоматизации продления важно контролировать не только выпуск, но и фактическое применение нового сертификата сервером.
Вывод
Надёжный HTTPS складывается из корректного сертификата, поддерживаемой конфигурации TLS и регулярной проверки. Защита работает лучше всего тогда, когда она понятна и поддерживается как часть обычной эксплуатации.