SSL/TLS-сертификат — цифровой документ, подтверждающий, что вы действительно общаетесь с тем сайтом, который хотели посетить. Без сертификатов трафик легко подделать (MITM-атака).
Что в сертификате
- Доменное имя (или имена)
- Публичный ключ сервера
- Информация о владельце (для EV-сертификатов)
- Подпись центра сертификации (CA)
- Даты выпуска и истечения
- Алгоритмы шифрования
Как проверяется
- Браузер получает сертификат от сервера
- Проверяет: подпись сделана корневым CA из списка доверенных
- Проверяет срок действия
- Проверяет доменное имя
- Проверяет отзыв через OCSP/CRL
- Если всё ок — замочек зелёный, соединение шифруется
Типы
- DV (Domain Validation): подтверждает только владение доменом. Самый дешёвый/бесплатный. Let's Encrypt
- OV (Organization Validation): подтверждает организацию. Для бизнеса
- EV (Extended Validation): максимальная проверка. Зелёная строка в браузере (раньше)
- Wildcard: *.example.com
- SAN/Multi-domain: несколько доменов в одном сертификате
Let's Encrypt
- Бесплатный CA с 2016
- Автоматическая выдача через ACME-протокол
- Срок 90 дней, обновление автоматизировано (certbot)
- Выдал более 500 млн сертификатов
- Революция: до LE HTTPS был платным и редким, сейчас — стандарт
Как выдаются
- HTTP-01: ставим файл на сервер, CA проверяет
- DNS-01: создаём TXT-запись, CA проверяет (для wildcard)
- TLS-ALPN-01: ответ по TLS
OCSP и отзыв
- Если закрытый ключ скомпрометирован — сертификат можно отозвать
- CRL (Certificate Revocation List): список отозванных
- OCSP (Online Certificate Status Protocol): запрос статуса в real-time
- OCSP stapling: сервер сам прилагает свежий статус
HSTS
HTTP Strict Transport Security. Заголовок, говорящий браузеру: всегда HTTPS для этого домена, никогда не переходи на HTTP. Защита от SSL-stripping атак.
Certificate Transparency
- Все выпущенные сертификаты публикуются в логах
- Владелец домена может мониторить
- Если кто-то выпустил сертификат на ваш домен — заметно
- Можно искать: crt.sh
Самоподписанные
- Можно создать свой CA и выпускать сертификаты
- Для внутренних нужд — норма
- Браузер по умолчанию не доверяет, показывает предупреждение
- Можно добавить свой CA в доверенные (для локальной разработки)
Атаки
- MITM без сертификата: перехват, но видим пользователю (предупреждение браузера)
- Skipper/SSL stripping: MITM заменяет HTTPS на HTTP (HSTS блокирует)
- Взлом CA: происходит редко, но ужасно (DigiNotar 2011 — обанкротился)
- Mis-issued certs: ошибочно выпущенные сертификаты
Проверка в браузере
- Клик на замочек → просмотр сертификата
- Subject, Issuer, valid from/to, fingerprint
- Chrome DevTools: Security tab
- Онлайн: SSL Labs test (ssllabs.com/ssltest)
Шифры
- Современные: TLS 1.2, 1.3 (2018)
- Алгоритмы обмена ключами: ECDHE (forward secrecy)
- Симметричные: AES-GCM, ChaCha20-Poly1305
- HMAC: SHA256, SHA384
- Устаревшие (отключить): SSL 3.0, TLS 1.0/1.1, RC4, 3DES
Мобильные
- Certificate pinning: приложение доверяет только конкретному сертификату
- Защищает от MITM через скомпрометированный CA
- Но усложняет обновление сертификатов
Стоимость
- Let's Encrypt: $0
- DV от GlobalSign, Comodo: $10-50/год
- OV: $100-200
- EV: $200-500
- Wildcard: $150-300+
Сегодня в 95% случаев Let's Encrypt — достаточно.
Есть вопрос?
Вопросы и ответы · 0
Не поняли что-то?
Зарегистрируйтесь — и сможете задать вопрос автору объяснения.
Загрузка комментариев…