SSL (Secure Sockets Layer) это протокол, который шифрует соединение между браузером и сервером, проверяет подлинность сайта и не даёт незаметно подменить данные по дороге. Сам SSL давно выведен из употребления: все его версии признаны небезопасными, а вместо него работает TLS (Transport Layer Security). Название при этом прижилось, поэтому «SSL-сертификатом» и «SSL-соединением» до сих пор называют то, что на деле работает по TLS 1.2 или 1.3.
Если сайт открывается по https://, под ним работает именно TLS. Чем HTTPS отличается от обычного HTTP, мы разобрали в статье HTTP и HTTPS: в чём разница, а здесь речь о самом протоколе шифрования: какие у него версии, как проходит рукопожатие и как проверить соединение своими руками. Если хочется работать с этим профессионально, подборка курсов по информационной безопасности есть в нашем каталоге.
Что делает SSL/TLS простыми словами

Представьте, что вы передаёте записку через незнакомых людей. Без защиты любой из них может её прочитать, переписать или выдать себя за адресата. TLS закрывает все три риска:
- Конфиденциальность. Данные шифруются, и посредник видит только бессмысленный набор байтов.
- Целостность. Каждая порция данных снабжена кодом проверки. Изменили хоть один байт, и получатель отбросит такую запись.
- Аутентификация. Сервер предъявляет сертификат, подписанный удостоверяющим центром, и клиент убеждается, что говорит именно с нужным сайтом, а не с подставным.
Спецификация TLS 1.3 формулирует задачу так: протокол позволяет клиент-серверным приложениям общаться через интернет так, чтобы предотвратить прослушивание, подделку и фальсификацию сообщений. Без проверки подлинности шифрование мало что даёт: защищённый канал до мошенника защищает только мошенника. Как злоумышленники выдают себя за чужой сервер, рассказано в статье про спуфинг.
TLS работает поверх TCP и ниже прикладных протоколов. Место SSL/TLS среди остальных уровней удобно смотреть в обзоре сетевых протоколов.
SSL и TLS: в чём разница и какие версии живы
Разница между SSL и TLS в основном историческая. SSL придумали в Netscape: описание версии 2.0 датировано 9 февраля 1995 года, а последней версии 3.0 датировано 18 ноября 1996 года. Через три года IETF выпустила доработанный протокол под новым именем TLS 1.0, и дальше развивался только он.
| Версия | Год | Статус |
|---|---|---|
| SSL 2.0 | 1995 | запрещена с 2011 года |
| SSL 3.0 | 1996 | запрещена с 2015 года |
| TLS 1.0 | 1999 | устарела с 2021 года |
| TLS 1.1 | 2006 | устарела с 2021 года |
| TLS 1.2 | 2008 | работает |
| TLS 1.3 | 2018 | работает, основная |
За каждой строкой стоит документ IETF. SSL 2.0 запретили отдельным стандартом: клиенты и серверы никогда не должны договариваться об этой версии. SSL 3.0 признали недостаточно безопасным после атаки POODLE на режим CBC, там же отмечены слабости шифра RC4.
TLS 1.0 и 1.1 перевели в исторический статус в марте 2021 года: в них нет поддержки современных криптографических алгоритмов. Так что «SSL что такое» сегодня на практике означает «TLS 1.2 или 1.3».
Чем TLS 1.3 лучше TLS 1.2
В версии 1.3 убрали почти всё устаревшее, что накопилось за двадцать лет. Главные изменения по спецификации TLS 1.3:
- Остались только шифры с аутентифицированным шифрованием (AEAD), устаревшие алгоритмы убраны.
- Убран обмен ключами через статический RSA. Каждое соединение получает свои одноразовые ключи, поэтому украденный когда-нибудь закрытый ключ сервера не позволит расшифровать ранее записанный трафик. Это свойство называют прямой секретностью (forward secrecy).
- Все сообщения рукопожатия после ServerHello шифруются, в том числе сертификат сервера.
- Полное рукопожатие укладывается в один круг «запрос → ответ», в спецификации его называют 1-RTT. В TLS 1.2 по схеме из стандарта до первых данных уходило два круга.
Для повторных подключений в TLS 1.3 есть ещё режим 0-RTT: клиент, который уже общался с сервером, отправляет данные вместе с первым же сообщением. Это экономит время, но в спецификации прямо предупреждают, что защита у таких данных слабее: у них нет прямой секретности и нет гарантии от повторной отправки.
Перехваченный запрос из 0-RTT можно отправить на сервер ещё раз. Для загрузки страницы это безвредно, а вот платёж или отправку формы так передавать опасно.
Канал основателя Checkroi Вани Буявца3 700 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединитьсяКак работает рукопожатие TLS

Рукопожатием (handshake) называют короткий обмен сообщениями перед передачей данных. За это время стороны договариваются о версии и шифре, сервер доказывает свою подлинность, и обе стороны получают общий секретный ключ. Вот как это выглядит в TLS 1.3:
- ClientHello. Сначала браузер открывает обычное TCP-соединение (чем TCP отличается от UDP, разобрано в статье про UDP), а затем сообщает, какие версии и наборы шифров он умеет, и сразу присылает свою половину обмена ключами (например, на кривой X25519).
- ServerHello. Сервер выбирает версию и шифр и отвечает своей половиной обмена. С этого момента у обеих сторон есть общий секрет, и дальше всё идёт зашифрованным.
- Сертификат и подпись. Сервер отправляет сертификат и подписывает своим закрытым ключом всю переписку рукопожатия. Браузер проверяет цепочку сертификатов и подпись.
- Finished. Стороны обмениваются контрольными значениями. Если кто-то вмешался в рукопожатие, значения не совпадут, и соединение оборвётся.
- Данные приложения. Дальше идут HTTP-запросы и ответы, зашифрованные симметричным шифром вроде AES-GCM или ChaCha20-Poly1305.
Асимметричная криптография (обмен ключами, подписи) работает только на этапе рукопожатия. Сами данные шифруются симметрично, потому что симметричные шифры работают намного быстрее. Как устроены оба вида шифрования и чем открытый ключ отличается от закрытого, объясняет статья про основы криптографии.
Что значит набор шифров
Набором шифров (cipher suite) называют строку, в которой зашиты алгоритмы соединения. В TLS 1.2 она длинная, потому что описывает всё сразу:
ECDHE-RSA-CHACHA20-POLY1305
ECDHE — обмен ключами (эллиптические кривые, одноразовые ключи)
RSA — чем сервер подтверждает подлинность
CHACHA20-POLY1305 — шифрование данных и проверка целостности
В TLS 1.3 обмен ключами и подпись договариваются отдельно, и в имени набора остаются только шифр и хеш-функция: TLS_AES_256_GCM_SHA384. Поэтому строки у двух версий выглядят по-разному, хотя назначение у них одно.
Что такое SSL-сертификат и цепочка доверия
Сертификат это электронный документ, который связывает доменное имя с открытым ключом сервера. Его подписывает удостоверяющий центр (Certificate Authority, CA), а браузер и операционная система заранее хранят список корневых центров, которым доверяют.
Подпись идёт по цепочке. Корневой центр подписывает промежуточный, промежуточный подписывает сертификат сайта. У сайта Checkroi цепочка выглядит так:
0 s:CN = checkroi.ru
i:C = US, O = Let's Encrypt, CN = YR2
1 s:C = US, O = Let's Encrypt, CN = YR2
i:C = US, O = ISRG, CN = Root YR
2 s:C = US, O = ISRG, CN = Root YR
i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
В строке s: указано, кому выдан сертификат, в строке i: указан тот, кто его подписал. Браузер поднимается по цепочке, пока не дойдёт до корня из своего хранилища. Не нашёл корень или одно звено просрочено, значит, соединение помечается как небезопасное.
Сертификат доказывает меньше, чем кажется. Он подтверждает, что вы подключились к серверу, который управляет этим доменом. Честность владельца сайта он не проверяет: сертификат на домен может получить и мошенник, поэтому замочек в адресной строке не гарантирует, что сайт безопасен. Адрес стоит сверять глазами, особенно если сайт просит пароль или данные карты.
Какие бывают сертификаты
| Тип | Что проверяет центр | Кому подходит |
|---|---|---|
| DV (Domain Validation) | только право управлять доменом | блоги, лендинги, большинство сайтов |
| OV (Organization Validation) | домен и существование организации | сайты компаний |
| EV (Extended Validation) | расширенная проверка юрлица | банки, крупные сервисы |
Шифруют все три типа одинаково, разница только в том, сколько центр узнал о владельце. Wildcard-сертификат (*.example.ru) покрывает все поддомены первого уровня, а мультидоменный перечисляет нужные имена в поле Subject Alternative Name.
Срок жизни сертификатов сокращается. Let’s Encrypt сейчас выдаёт сертификаты на 90 дней и планирует перейти на 64 дня с 10 февраля 2027 года и на 45 дней с 16 февраля 2028 года. Для всех публичных центров отрасль приняла график сокращения максимального срока с 398 до 47 дней с марта 2026 по март 2029 года, поэтому продление вручную становится непрактичным и его автоматизируют. Настраивать такое автопродление обычно приходится DevOps-инженеру или системному администратору.
Про российские сертификаты Национального удостоверяющего центра Минцифры и браузеры, которые их принимают, рассказано в той же статье про HTTPS.
Как проверить SSL/TLS у сайта
Быстрее всего проверить в браузере. Значок слева от адреса показывает, защищено ли соединение, а по клику открываются сведения о сайте и сертификате. Но версию TLS и набор шифров браузер обычно прячет глубже, поэтому удобнее командная строка.
Через OpenSSL
OpenSSL установлен почти на любом Linux-сервере. Команда подключается к сайту и коротко печатает итог рукопожатия:
echo | openssl s_client -connect checkroi.ru:443 -servername checkroi.ru -brief
CONNECTION ESTABLISHED
Protocol version: TLSv1.3
Ciphersuite: TLS_AES_256_GCM_SHA384
Peer certificate: CN = checkroi.ru
Hash used: SHA256
Signature type: RSA-PSS
Verification: OK
Server Temp Key: X25519, 253 bits
DONE
Вывод снят 27 октября 2026 года в OpenSSL 3.0.13. Что в нём важно:
Protocol version: версия, о которой договорились клиент и сервер;Ciphersuite: набор шифров;Verification: OK: цепочка сертификатов проверена и доверенная;Server Temp Key: X25519: одноразовый ключ обмена, значит, прямая секретность работает.
Флаг -servername задаёт имя сайта явно: через него передаётся расширение SNI, и сервер, на котором живёт несколько доменов, выдаст нужный сертификат. Пояснения ко всем флагам есть в документации OpenSSL. Если команды терминала пока непривычны, начните со шпаргалки по командам Linux.
Срок действия сертификата и издателя покажет связка из двух команд:
echo | openssl s_client -connect checkroi.ru:443 -servername checkroi.ru 2>/dev/null \
| openssl x509 -noout -issuer -enddate
issuer=C = US, O = Let's Encrypt, CN = YR2
notAfter=Dec 27 23:30:00 2026 GMT
В macOS по умолчанию стоит LibreSSL 3.3.6, и флаг -brief он не знает: команда ответит unknown option -brief. Версию и шифр там проще достать фильтром:
echo | openssl s_client -connect checkroi.ru:443 -servername checkroi.ru 2>/dev/null \
| grep -E '^\s*(Protocol|Cipher)\s*:'
Protocol : TLSv1.3
Cipher : AEAD-AES256-GCM-SHA384
Принимает ли сервер старые версии
По RFC 8996 версии TLS 1.0 и 1.1 использовать нельзя, так что сервер не должен на них соглашаться. Проверить можно, попросив у него устаревшую версию. Современный OpenSSL сам отказывается её включать, поэтому уровень безопасности клиента приходится временно понизить параметром @SECLEVEL=0:
echo | openssl s_client -connect checkroi.ru:443 -servername checkroi.ru \
-tls1_1 -cipher "DEFAULT@SECLEVEL=0"
40F715CC09780000:error:0A00042E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:../ssl/record/rec_layer_s3.c:1599:SSL alert number 70
CONNECTED(00000003)
---
no peer certificate available
Сигнал alert protocol version означает, что сервер отказался: версию 1.1 он не поддерживает, и это правильно. Если вместо ошибки пришёл сертификат, старые версии на сервере стоит отключить. Для массовой проверки открытых портов и служб пригодится Nmap.
Где ещё работает TLS, кроме сайтов
HTTPS заметнее всех, но TLS защищает и другие службы. У многих из них есть отдельный порт для шифрованного подключения:
| Что защищает | Порт | Источник |
|---|---|---|
| сайты (HTTPS) | 443 | стандарт HTTP |
| отправка почты (SMTP) | 465 | RFC 8314 |
| получение почты (IMAP) | 993 | там же |
| получение почты (POP3) | 995 | там же |
| DNS-запросы (DNS over TLS) | 853 | RFC 7858 |
Почему у HTTPS именно 443 и как проверить, открыт ли этот порт, разобрано в статье про порт 443. Как почтовые протоколы используют шифрование и какие порты указывать в почтовом клиенте, есть в материале про SMTP, IMAP и POP3.
Ещё TLS шифрует подключения к базам данных, брокерам сообщений и внутренним API. В микросервисах часто используют взаимный TLS (mTLS): сертификат предъявляет не только сервер, но и клиент, поэтому чужой сервис не подключится, даже если найдёт адрес.
Частые ошибки SSL и что с ними делать

Большинство предупреждений браузера сводится к пяти причинам. Ниже реальные ответы OpenSSL на тестовых стендах badssl.com, где каждая ошибка воспроизводится специально:
| Что пишет OpenSSL | Причина | Что делать |
|---|---|---|
certificate has expired |
сертификат просрочен | владельцу сайта продлить и настроить автопродление; посетителю проверить дату и время на компьютере |
hostname mismatch |
сертификат выдан на другое имя | выпустить сертификат с нужным доменом в списке имён, проверить www и поддомены |
self-signed certificate |
сертификат подписан сам собой, без центра | для публичного сайта заменить на сертификат от удостоверяющего центра |
unable to get local issuer certificate |
сервер не отдал промежуточный сертификат | подключить в настройках сервера полную цепочку (fullchain), а не только сертификат сайта |
unsupported protocol |
сервер умеет только устаревшие версии | обновить настройки сервера до TLS 1.2 и 1.3 |
Хуже всего ловится неполная цепочка. Браузеры иногда достраивают недостающее звено сами, и сайт у владельца открывается нормально. А мобильное приложение, скрипт на Python или curl на сервере падают с ошибкой проверки.
Решение: проверять сайт не только в браузере, но и командой openssl s_client из раздела выше. Строка Verification: OK там означает, что цепочка собрана полностью.
Проверка имени тоже требует внимания. По умолчанию s_client только проверяет цепочку и не сравнивает домен с сертификатом. Ошибку hostname mismatch он покажет, если добавить флаг -verify_hostname с именем сайта.
Где освоить сетевую безопасность системно
Понять, что такое SSL и как прочитать вывод OpenSSL, можно за вечер. Настроить TLS на десятке серверов, вести учёт сертификатов, расследовать перехват трафика и разбираться в атаках на протоколы уже работа сетевого инженера или специалиста по кибербезопасности, и её учат на курсах по информационной безопасности.
Ниже курсы из каталога Checkroi с ценами и программами. Все программы раздела собраны на странице курсов по информационной безопасности.
| Курс | Школа | Стоимость со скидкой | В рассрочку | Длительность | Обзор курса от Checkroi |
|---|---|---|---|---|---|
| ДО Профессия Специалист по кибербезопасности 2.0 Перейти на сайт курса | 141 563 ₽ | 3933 ₽/мес. | 12 месяцев | Обзор курса | |
| Кибербезопасность Перейти на сайт курса | 200 000 ₽ | - | 24 месяца | Обзор курса | |
| Специалист по кибербезопасности Перейти на сайт курса | 145 900 ₽ | 6079 ₽/мес. | 5 месяцев | Обзор курса | |
| Онлайн-магистратура МИФИ "Информационная безопасность" Перейти на сайт курса | 225 000 ₽ | - | 24 месяца | Обзор курса | |
| Магистратура «Кибербезопасность» с НИУ ВШЭ Перейти на сайт курса | 310 000 ₽ | - | 23 месяца | Обзор курса |
Больше программ — в полном каталоге курсов по информационной безопасности




