TLS: что это, версии, отличие от SSL и настройка в 2026 | Глоссарий FREEHOSTING

TLS

Transport Layer Security
TLS — TLS — криптографический протокол, обеспечивающий конфиденциальность и целостность данных между клиентом и сервером. Преемник SSL: TLS 1.0 опубликован в 1999 году, актуальная TLS 1.3 — в 2018-м. Лежит в основе HTTPS, защищённой почты и API.

Определение простыми словами

TLS — это набор криптографических правил, по которым клиент и сервер договариваются о безопасном канале связи. Перед обменом данными они выполняют рукопожатие: проверяют сертификат сервера, согласуют версию протокола, выбирают алгоритмы шифрования и обмениваются ключами. После рукопожатия весь трафик шифруется и подписывается так, что злоумышленник посередине не может ни прочитать, ни подменить данные.

Протокол развивался поверх Secure Sockets Layer (SSL) — разработки Netscape середины 1990-х. С 1999 года стандартом занимается IETF, сменив название на TLS. SSL 2.0 и 3.0, а также TLS 1.0 и 1.1 признаны устаревшими и отключены в браузерах с 2020 года. Современный интернет работает на TLS 1.2 и TLS 1.3.

TLS — фундамент HTTPS, без которого браузеры показывают предупреждение «Не защищено». Поверх TLS работают защищённая почта (SMTPS, IMAPS), MQTT, gRPC, WebSocket Secure, многие VPN-протоколы. Подробнее о смежных понятиях — в материалах о SSL и HTTPS.

Сравнение

Параметр TLS 1.2 TLS 1.3 SSL 3.0
Год публикации 2008 2018 1996
Поддержка в браузерах да да отключено
Раундов в рукопожатии 2 1 (0-RTT при возобновлении) 2
Уязвимые шифры RC4, 3DES (исключены) удалены полностью POODLE
Forward secrecy опционально обязательно нет
Размер ChangeCipherSpec есть удалён есть

Кейсы использования

  • HTTPS на сайтах: TLS защищает пароли, платёжные данные и контент от перехвата.
  • API-интеграции: REST и gRPC передают токены и тела запросов поверх TLS.
  • Защищённая почта: SMTP STARTTLS, IMAPS и POP3S шифруют переписку и логин.
  • VPN-протоколы OpenVPN и WireGuard используют TLS-handshake для обмена ключами.
  • Балансировщики и WAF выполняют TLS-терминацию, разгружая backend от шифрования.

Когда TLS избыточен:

  • Локальный обмен между сервисами в одном Docker-network — есть встроенная изоляция.
  • Внутренние UDP-логи внутри VPN — двойное шифрование тратит CPU.
  • Embedded-устройства с ограниченным CPU — иногда выбирают облегчённый DTLS.

Технические детали

Проверка TLS-конфигурации сервера через openssl:

# Полная информация о сертификате и цепочке
openssl s_client -connect example.com:443 -servername example.com

# Только версия протокола и шифр
openssl s_client -connect example.com:443 -tls1_3 < /dev/null 2>/dev/null 
  | grep -E "Protocol|Cipher"

# Срок действия сертификата
openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>/dev/null 
  | openssl x509 -noout -dates

# Минимальный конфиг Nginx с TLS 1.2 и 1.3
# server {
#   listen 443 ssl http2;
#   ssl_certificate /etc/letsencrypt/live/site.ru/fullchain.pem;
#   ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem;
#   ssl_protocols TLSv1.2 TLSv1.3;
#   ssl_ciphers HIGH:!aNULL:!MD5:!3DES:!RC4;
#   ssl_prefer_server_ciphers off;
# }

# Тест рейтинга через ssllabs CLI
nmap --script ssl-enum-ciphers -p 443 example.com

Бесплатные сертификаты для TLS можно получить через Let’s Encrypt; на виртуальном хостинге их обычно выпускает панель управления автоматически.

Частые вопросы

В чём разница между TLS и SSL?

TLS — преемник SSL, разработанный после стандартизации в IETF. Технически это разные протоколы, но термины часто используют как синонимы. SSL 3.0 и ниже отключены из-за уязвимостей.

Зачем переходить на TLS 1.3?

Рукопожатие в один раунд вместо двух ускоряет загрузку сайта на 50-100 мс, удалены устаревшие шифры, обязателен forward secrecy. Браузеры предпочитают 1.3, серверу выгодно поддерживать обе версии.

Что такое SNI?

Server Name Indication — расширение TLS, позволяющее серверу обслуживать несколько доменов с разными сертификатами на одном IP-адресе. Без SNI пришлось бы выделять отдельный IP под каждый сайт.

Почему openssl показывает 'verify error'?

Цепочка сертификата неполная: сервер не отдаёт промежуточный сертификат CA. Решение — указать в ssl_certificate полный fullchain.pem, а не только сертификат сайта.