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.
- Терминация на балансировщике — сертификат живёт там, а не на бэкендах; не забудьте про трафик внутри периметра.
Связанные термины
Готовы запустить GPU-задачу?
Запустить GPU-сервер