Что такое SSL-протокол
В статье рассказываем, как работает SSL-протокол, и делимся инструкцией по получению сертификата и его установке на сервер.
Secure Sockets Layer, SSL, — протокол, обеспечивающий шифрование, защиту и аутентификацию интернет-соединений. Несмотря на то, что начале XXI века его заменил обновленный протокол TLS (Transport Layer Security), SSL по-прежнему широко используется.
Протоколы SSL/TLS также подходят для защиты и других подключений — например, IP-телефонии или электронной почты.
Работа Secure Sockets Layer (SSL): рукопожатие
Работа SSL-протокола базируется на нескольких этапах:
- Установка соединения. Клиент отправляет запрос на установку безопасного соединения с сервером.
- Запрос на сертификат. Сервер отвечает клиенту, отправляя свой цифровой сертификат, который содержит открытый ключ и информацию о сервере.
- Проверка сертификата. Клиент проверяет подлинность сертификата с помощью центра сертификации.
- Key exchange. Клиент генерирует симметричные ключи шифрования и осуществляет их передачу с помощью открытого ключа сервера.
- Шифрование данных. Сервер расшифровывает симметричные ключи с помощью закрытого ключа и использует для шифрования данных, которые затем отправляет клиенту.
- Расшифровка данных. Клиент использует симметричные ключи для расшифровки данных, полученных от сервера.
В результате трафик, который передается между сервером и клиентом, защищен от перехвата и изменения злоумышленниками. SSL-протокол сохраняет целостность, конфиденциальность и аутентификацию данных.
Что такое SSL-сертификат
SSL-сертификат — это файл, который устанавливается на сервере с сайтом. Он содержит цифровую подпись издателя, открытый ключ и имя владельца сертификата, название центра сертификации.
Зачем нужен SSL-сертификат
SSL-сертификаты нужны для обеспечения безопасности пользовательских данных, подтверждения права собственности на веб-сайт, предотвращения создания поддельных версий сайта.
Если веб-сайт просит пользователей войти в систему или ввести личные данные, SSL поможет сохранить конфиденциальность сессии. Он также гарантирует, что веб-сайт является подлинным.
Самое главное — сертификат нужен, чтобы веб-сайт мог работать через шифрование HTTPS. Если сертификат отсутствует, то обмен данными осуществляется через HTTP.
HTTPS создает зашифрованное соединение между браузером пользователя и веб-сервером, с которым он общается. SSL-сертификаты необходимы для установки этого зашифрованного соединения.
Типы SSL-сертификатов
В зависимости от задачи доступно несколько типов сертификатов. Уровень аутентификации, обеспечиваемый центром сертификации (CA), является существенным различием между ними.
- Domain Validation, DV — SSL-сертификат с проверкой домена обеспечивают самый быстрый, простой и экономичный способ шифрования HTTPS. DV требует подтверждения права собственности на защищенный домен и обычно выдается в течение нескольких минут. Однако поскольку легитимность организации не проверяется, DV не подходит для бизнес-сайтов. Этот сертификат лучше использовать для внутренних веб-сервисов, тестовых серверов и доменов.
- Organization Validation, OV — SSL-сертификат с проверкой организации. Чтобы его получить, организация должна доказать право собственности на домен и подтвердить, что является юридически зарегистрированным бизнесом.
- Extended Validation, EV — SSL-сертификат с расширенной проверкой обеспечивают наиболее высокий уровень доверия. Этот вариант подходит для веб-сайтов с электронной коммерцией — например, для интернет-магазинов. Чтобы его получить, владелец сайта должен соответствовать требованиям аутентификации для OV, а также пройти дополнительную проверку. При этом сертификаты EV обеспечивают то же самое шифрование, что DV и OV.
- Wildcard — отдельный сертификат с подстановочным знаком (*) в поле имени домена. Это позволяет сертификату защищать несколько поддоменов, относящихся к одному базовому домену.
- Multi-Domain SSL Certificate, MDC — может защитить до 100 различных доменных имен и поддоменов с помощью одного сертификата, что помогает сэкономить время и деньги.
- Unified Communications Certificate, UCC — предназначен для защиты нескольких полных доменных имен (FQDN). В UCC первый домен считается основным (базовым), а другие — доменами SAN (альтернативные имена субъекта).
В зависимости от центра сертификации пользователь может защитить от 25 до 250 доменов, что экономит время на управление сертификатами, а также снижает стоимость.
Платные и бесплатные сертификаты
Существуют как платные, так и бесплатные сертификаты SSL.
Платные сертификаты SSL предоставляются коммерческими центрами сертификации. Они обеспечивают более высокий уровень доверия для пользователей, так как включают проверку владельца сайта.
Бесплатные сертификаты SSL также доступны и могут быть получены от различных организаций, таких как Let’s Encrypt. Они предоставляют базовую безопасность и шифрование данных, но могут иметь ограниченный период действия или ограничения по функциональности.
Выбор между платными и бесплатными сертификатами SSL зависит от требований и бюджета веб-проекта. Бесплатные сертификаты привлекательны и подходят в определенных ситуациях. Но платные сертификаты более гибкие и заслуживают большего доверия.
Как проверить наличие сертификата
Самый простой способ узнать — это проверить URL сайта. Он должен начинаться с HTTPS. Для получения более подробной информации вы можете кликнуть на значок у адресной строки:
Также можно использовать сервисы вроде SSL Checker. С помощью него можно узнать, например, срок действия сертификата.
Как получить SSL-сертификат
Алгоритм для владельца сайта
Для получения SSL-сертификата необходимо выполнить несколько действий:
1. Выберите поставщика SSL-сертификатов. На рынке существует множество компаний, которые предлагают сертификаты. Среди них — Comodo, Symantec, GlobalSign, Let’s Encrypt и другие. Выберите поставщика, учитывая ваши потребности и бюджет.
2. Приобретите SSL-сертификат. После выбора поставщика и плана сертификации вам нужно купить сертификат. Поставщик предоставит вам данные, которые необходимо внести в качестве дополнительных записей на сервере или DNS.
3. Сгенерируйте CSR, запрос на сертификат. Вам необходимо будет создать запрос, который содержит информацию о вашей организации (название, адрес, домен и другие данные). Этот запрос будет связан с вашим закрытым ключом и использоваться для создания сертификата.
4. Предоставьте CSR поставщику сертификатов. Когда вы сгенерируете CSR, передайте его поставщику сертификатов. Он будет использовать эту информацию для создания вашего SSL-сертификата.
5. Подтвердите свое право на домен. В зависимости от типа сертификата и поставщика может понадобиться подтверждение того, что вы собственник домена. Обычно это можно сделать с помощью специальных DNS-записей или размещения файлов на сервере.
6. Получите и установите SSL-сертификат. После утверждения запроса поставщик предоставит вам SSL-сертификат. Его нужно будет установить на сервере — для этого понадобится закрытый ключ, созданный вместе с CSR.
После установки SSL-сертификата сайт будет защищен шифрованием. Посетители будут значок в адресной строке браузера, которые указывают на то, что соединение с сервером безопасно.
Проверка и выпуск сертификатов: подробнее о центрах сертификации
Центр сертификации — это организация, которая проверяет веб-сайты, адреса электронной почты и другие ресурсы на подлинность, а также привязывает их к криптографическим ключам. Для этого они выпускают электронные документы — цифровые сертификаты.
Как правило, заявитель на сертификат генерирует закрытый и открытый ключи (приватный и публичный), а также запрос на подпись сертификата, CSR. CSR — это закодированный текстовый файл, содержащий открытый ключ и другую информацию, которая будет включена в сертификат — например, доменное имя, название организации, адрес электронной почты и другое.
Ключи и CSR обычно генерируются на машине, на которой нужно установить сертификат. Информации в CSR зависит от уровня проверки и типа сертификата.
После создания CSR заявитель отправляет его в CA, который самостоятельно проверяет его содержание. Если информация корректна, центр подписывает сертификат в цифровой форме.
Когда подписанный сертификат предоставляется третьей стороне (например, когда это лицо получает доступ к веб-сайту с сертификатом), получатель может криптографически подтвердить цифровую подпись CA с помощью открытого ключа.
Установка сертификата
С получением SSL-сертификата разобрались. Теперь подробнее рассмотрим его установку на сервер.
Windows server
- Заходим на хостинг и подключаемся к своему серверу.
- Переходим в раздел Start/Administrative Tools/Internet Information Services (IIS) Manager.
- В панели Connections нажимаем на название сервера.
- Открываем Server Certificates.
- В панели Actions выбираем Complete Certificate Request.
- Во вкладке Specify Certificate Authority Response нажимаем на многоточие и выбираем сертификат.
- Нажимаем ОК.
- Далее следует настройка в IIS Manager. Нажимаем на имя сервера, Sites и выбираем сайт, на который необходимо установить сертификат.
- В панели Actions нажимаем Bindings.
- Во всплывающем окне Site Bindings выбираем https и нажимаем Edit.
- В окне Edit Site Binding выбираем сертификат.
- Нажимаем ОК.
MacOS
1. Переходим в раздел Finder/Applications/Utilities/Keychain Access.
2. Выбираем System.
3. Добавляем наш сертификат.
4. Теперь сертификат должен быть отмечен красным крестиком. Чтобы это исправить, нужно два раза кликнуть на сертификат и выбрать Always Trust во вкладке Trust.
Linux
1. Открываем терминал.
2. Добавляем наш сертификат в систему:
sudo cp /path-to-certificate.crt /etc/ssl/certs
3. Обновляем список центров сертификации:
update-ca-certificates
Протокол TLS как развитие SSL
TLS — это обновленная версии SSL. Оба протокола шифруют информацию на одном уровне, но, как и другие технологии, со временем развиваются. В отличие от SSL, TLS использует немного другие криптографические алгоритмы для генерации ключей функцией MAC и включает больше кодов предупреждений, чем его предшественник.
Переход с SSL на TLS и различия между протоколами
Переход с SSL до TLS произошел по нескольким причинам. Разобравшись в них, вы поймете разницу между этими протоколами.
1. Уязвимости SSL. В конце XX века сообщество обнаружило несколько критических уязвимостей в протоколе SSL: POODLE, Heartbleed и BEAST. Они позволяли злоумышленникам получать доступ к зашифрованной информации или проводить атаки типа Man-in-the-Middle. Это привело к снижению доверия к протоколу SSL.
2. Потребность в совершенствовании. Разработчики SSL усовершенствовали протокол и создали новую версию, которая стала более безопасной и надежной. Таким образом, TLS был создан как преемник SSL в 1999 году.
3. Поддержка новых алгоритмов шифрования. TLS включает более безопасные алгоритмы шифрования. Пример — Advanced Encryption Standard, AES, который является более надежным и эффективным по сравнению с алгоритмом Data Encryption Standard, DES, который используется в SSL.
Развитие протокола TLS продолжается, а самая актуальная версия сегодня — 1.3.
Заключение
Шифрование данных через SSL не является идеальным и предполагает свои риски. Поэтому регулярное обновление сертификатов и соблюдение современных рекомендаций по безопасности — важная задача для владельцев веб-ресурсов и разработчиков.