Security

SSL-сертификат

SSL-сертификат — подписанный удостоверяющим центром файл, который связывает домен с публичным ключом и включает на сайте HTTPS.

Что такое SSL-сертификат

SSL расшифровывается как Secure Sockets Layer — «слой защищённых сокетов». SSL-сертификат — это файл, который удостоверяющий центр (УЦ, Certificate Authority) подписывает своим ключом и который связывает конкретный домен с публичным ключом сервера. Наличие сертификата включает на сайте HTTPS и замочек в браузере.

Терминологическая тонкость, которую стоит знать: сам протокол SSL мёртв уже давно — версии 2.0 и 3.0 признаны небезопасными и отключены. Реально сегодня работает TLS, а «SSL-сертификат» — прижившееся название по инерции. Сертификат в принципе не привязан к версии протокола: это просто структура данных формата X.509.

Сертификат решает ровно одну задачу — подтверждает, что вы говорите именно с тем сервером. Само шифрование обеспечивает TLS; без сертификата канал можно было бы зашифровать, но нельзя было бы понять, с кем. Именно поэтому MITM-атака упирается в сертификат: подменить трафик легко, подделать подпись УЦ — нет.

Что внутри

openssl x509 -in cert.pem -noout -text | head -20
# Issuer: кто выдал (УЦ)
# Subject: кому выдан (домен)
# Validity: срок действия
# Subject Alternative Name: список доменов — именно он проверяется браузером
# Public Key: публичный ключ сервера

Поле CN (Common Name) современные браузеры игнорируют — домены берутся только из SAN. Это частая причина ошибки NET::ERR_CERT_COMMON_NAME_INVALID у самоподписанных сертификатов, сделанных по старым инструкциям.

Типы проверки

Тип Что проверяет УЦ Срок выпуска Когда нужен
DV (Domain Validation) Только контроль над доменом Минуты, автоматически Большинство сайтов, API
OV (Organization Validation) Существование юрлица Дни Корпоративные порталы
EV (Extended Validation) Расширенная проверка компании Дни–недели Финансы, госсектор

Практический момент: шифрование у DV и EV абсолютно одинаковое. EV когда-то давал зелёную строку с названием компании, но браузеры её убрали, поэтому переплата за EV сегодня оправдана в основном требованиями регулятора или комплаенса, а не безопасностью.

Отдельно от типа проверки идёт покрытие: сертификат на один домен, wildcard (*.example.com — все поддомены одного уровня) или SAN/multi-domain (список разных доменов в одном сертификате).

Как получить

Бесплатный DV от Let's Encrypt покрывает потребности подавляющего большинства проектов:

apt install certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
# сертификат на 90 дней, systemd-таймер обновляет автоматически
certbot renew --dry-run

Короткий срок в 90 дней — не недостаток, а замысел: он вынуждает настроить автопродление, и вы перестаёте ронять прод из-за забытого сертификата. Индустрия движется к дальнейшему сокращению сроков, так что ручной выпуск раз в год постепенно перестаёт быть рабочей практикой.

Российская специфика: после 2022 года часть западных УЦ прекратила обслуживание клиентов из РФ, и для сайтов госорганов и банков выпуск ведёт НУЦ Минцифры. Его корневой сертификат не входит в хранилища зарубежных браузеров, поэтому его требуется устанавливать вручную или пользоваться браузерами со встроенной поддержкой. Для обычного коммерческого сайта Let's Encrypt работает штатно.

Типичные ошибки

  • Истёк. Ставьте алерт за 14 дней, не полагайтесь на письма УЦ.
  • Не хватает промежуточного сертификата. Браузер молчит, а curl и мобильные приложения падают. Проверяйте цепочку: openssl s_client -connect example.com:443 -showcerts.
  • Сертификат на example.com, а сайт на www.example.com. Выпускайте оба имени.
  • Ключ утёк — сертификат нужно отзывать и перевыпускать. Приватные ключи хранят с правами 600, в проде — в Vault или HSM.
  • Терминация на балансировщике — сертификат живёт там, а не на бэкендах; не забудьте про трафик внутри периметра.

Связанные термины

  • TLS — протокол, который использует сертификат
  • Криптография и СКЗИ — математика подписи и обмена ключами
  • PFS — почему утёкший ключ не расшифровывает старые сессии
  • SNI — как сервер выбирает сертификат для домена
  • HSM — аппаратное хранение приватных ключей
  • Домен — то, что сертификат удостоверяет

Готовы запустить GPU-задачу?

Запустить GPU-сервер