Что такое SSL/TLS?
SSL/TLS защищает данные между клиентом и сервером и позволяет проверить hostname сертификатом. SSL устарел, поэтому используйте актуальные версии TLS.
SSL и TLS: краткая история
TLS заменил SSL и исправил его слабые места. Не включайте устаревшие протоколы ради совместимости без оценки риска.
| Версия | Год | Статус |
|---|---|---|
| SSL 1.0 | 1994 | Не выпускалась (ошибки) |
| SSL 2.0 | 1995 | Устарела (небезопасна) |
| SSL 3.0 | 1996 | Устарела (уязвимость POODLE) |
| TLS 1.0 | 1999 | Устарела |
| TLS 1.1 | 2006 | Устарела |
| TLS 1.2 | 2008 | Действующий стандарт |
| TLS 1.3 | 2018 | Новейшая, рекомендуется |
Как работает TLS
TLS handshake
Клиент и сервер согласуют версию, cipher suite, сертификат и ключ сеанса до передачи данных.
Client Server
|-- Client Hello -------------->|
|<-- Server Hello --------------|
|<-- Certificate ---------------|
|<-- Key Exchange --------------|
|-- Key Exchange -------------->|
|-- Finished ------------------>|
|<-- Finished ------------------|
|<======= Encrypted Session ===>|
Сертификаты SSL/TLS
Содержимое сертификата
Проверяются SAN, issuer, срок, открытый ключ, подпись и цепочка.
Типы сертификатов
DV подтверждает контроль домена, OV и EV требуют дополнительных процедур, но ни один тип не гарантирует безопасность приложения.
Охват сертификата
Проверьте точный hostname, SAN и правила wildcard для каждого сервиса.
Внедрение SSL/TLS
Бесплатные сертификаты Let's Encrypt
Let's Encrypt выпускает короткоживущие сертификаты и требует автоматического продления.
# Using Certbot
sudo certbot --nginx -d example.com -d www.example.com
# Auto-renewal
sudo certbot renew --dry-run
Сертификаты облачного провайдера
Проверьте владельца, область действия, экспорт ключа, обновление и зависимость от провайдера.
Проверка сертификата
Проверяйте цепочку, срок, SAN, SNI, DNS, IPv4 и IPv6 с независимых точек.
Лучшие практики SSL/TLS
Настройка сервера
Ограничьте версии и cipher suites, включите безопасный redirect, HSTS после проверки и не допускайте mixed content.
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
Управление сертификатами
Храните ключи безопасно, мониторьте срок, автоматизируйте ротацию и документируйте владельца.
Проверка SSL/TLS
Используйте браузер, openssl и независимые проверки, сохраняя точный код ошибки и время.
curl "https://domscan.net/v1/health?domain=example.com"
# Returns SSL validity, issuer, expiration
openssl s_client -connect example.com:443 -servername example.com
Частые проблемы SSL
Hostname mismatch, истёкший срок, неполная chain, неверный SNI, слабый TLS, CAA и mixed content требуют разных исправлений.