Какой протокол используется для шифрования данных при отправке через интернет

Обновлено: 19.05.2024

Начнем с самого базового.

Для описания процесса общения между клиентом и сервером используется куча акронимов, они часто путают людей, недостаточно хорошо разбираются в внутреннем строении интернета.

Зашифрованный канал устанавливается с помощью протокола Transport Layer Security (TLS), который раньше назывался Secure Socket Layer (SSL). Эти сроки, как правило, взаимозаменяемы, ведь SSL 3.0 был заменен TLS 1.0. SSL был протоколом, разработанным Netscape, в то время как TLS — стандарт IEFT. Все версии SSL (1.0, 2.0, 3.0) считаются устаревшими из-за проблем с безопасностью и будут вызывать предупреждения в браузеров. Версии TLS (1.0, 1.1, 1.2) используются и сейчас, а TLS 1.3 находится в разработке.

Конфиденциальность

Целостность

Идентификация

Криптография: короткое интро

Конфиденциальность

Конфиденциальность — основа приватности. Именно она гарантирует, что информацию не получат третьи лица. Обычно для этого информацию обрабатывают таким образом, что она по понятной (так называемой plaintext) становится непонятной (шифротекст, ciphertext). Этот процесс называется шифрованием (encryption). Обратный процесс — расшифровкой (decryption). Делать это можно по-разному, и для этого создано много алгоритмов шифрования.

И если две стороны хотят общаться с шифрованием, они должны согласовать два аспекта:

Алгоритм шифрования.
С какими параметрами, паролем или правилами (секретом) происходит шифрования.
Существует два вида алгоритмов шифрования:

Https-шифрование (encryption) и Обратный процесс - расшифровкой (decryption)

Асимметричные методы такой проблемы нет. Они используют пару ключей: когда информацию зашифровано с помощью одного ключа, расшифровать ее можно только другим.

Как это работает? Представим, что Алиса и Боб хотят обмениваться какой-либо информацией конфиденциально. Каждый из них имеет пару ключей: частный и публичный. Частные ключи известны только их владельцам, публичные доступны любому.

асимметричные методы шифрования

Теперь в игру вступает симметричное шифрование, ведь оно куда быстрее асимметричное. Когда клиент и сервер конфиденциально обменялись ключами, для дальнейшего общения используется алгоритмы симметричного шифрования.

Первая асимметричная часть рукопожатие (handshake) называется обменом ключами (key exchange).

Целостность

Идентификация

CA — это организации, которым доверено подписывать сертификаты. Операционные системы как Windows, macOS, iOS и Android имеют собственный список доверенных сертификатов. Также его имеет Firefox.

Позже все сертификаты проверяются и считаются доверенными — операционной системой, браузером или другим доверенным объектом. Этот механизм называется цепочкой доверия.

Https-механизм называется цепочкой доверия

Вы можете сами добавить CA в список доверенных, это очень удобно при работе с самопидписанимы сертификатами (о них мы поговорим позже).

В большинстве ситуаций нужно достоверно идентифицировать только сервер. Пользователи магазина должны быть уверенными в его подлинности, поэтому сертификат нужен только сервера. В других системах, например государственных, нужно также точно идентифицировать и клиента, тогда им обоим нужны сертификаты, но это уже выходит за рамки данной статьи.

Есть несколько типов сертификатов, но все можно разделить по категориям.

1. Валидация сервера- Domain validated (DV)

Extended validation (EV)

EV сертификат гарантирует, что домен принадлежит определенной компании. Это вид сертификата, вызывает наибольшее доверие. Он выдается после проверки CA организации, обладающей доменом. Это проверка:

Теперь рядом с замочком отображаться название компании, владеющей доменом, клик по которой покажет детали о компании, например, ее название и адрес. Стоят такие сертификаты от 150 до 300 USD в год.

Organization validated (OV)

Эти сертификаты похожи на EV, они гарантируют, что домен принадлежит организации, но ее название не отображается перед URL. То есть вам нужно соблюсти все правила как и для EV-сертификата, но без его плюсов. Поэтому этот сертификат наименее популярен. Стоит от 40 до 100 USD в год.

2. Количество доменов

Один домен

Несколько доменов (UCC / SAN)

Такие типы сертификатов еще называют Unified Communications Certificate (UCC) или Subject Alternative Names (SAN), они могут покрывать сразу несколько доменов (или поддоменов) до определенного лимита. Обычно в цену включена оплата трех-пяти доменов, а остальные можно добавить за дополнительную цену.

Wildcard

Конфигурация

Каждый из этих пунктов имеет свой набор возможных алгоритмов (некоторые из них уже устарели), которые используют ключи разной длины. Частью handshake является согласование между клиентом и сервером, какие алгоритмы будут использованы.

И поэтому вам нужно будет сделать несколько решений в конфигурации.

Коды

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

Список комбинаций, поддерживаемых OpenSSL, устроен таким образом, что самая надежная комбинация расположена сверху, а слабая — снизу. Это имеет смысл, ведь выбор комбинации происходит перебором этого списка, пока не найдется комбинация, которая поддерживается и сервером и браузером. Поэтому лучше сначала попробовать более защищены способы.

На Википедии есть сравнительный список алгоритмов и их поддержка различными версиями SSL и TLS.

Тип ключа

Сертификаты с использованием эллиптической криптографии быстрее и меньше нагружают CPU, чем RSA-сертификаты, играет важную роль на мобильных устройствах. Но некоторые сервисы (на момент написания, 12 июля 2017 года, среди них были Amazon, CloudFront и Heroku) не поддерживают такие сертификаты.

256-битный ECC ключ признано достаточным.

Вы, наверное, заметили, что я не привел никаких конкретных цифр относительно влияния на быстродействие. Серверы бывают разные по комплектации, мощностями, а также на быстродействие влияет количество посетителей сайта.

Процедура получения сертификата

Для начала, существует два формата хранения информации — DER и PEM. Первый является бинарным форматом, а другой это base64-encoded (текстовый) DER-файл. По умолчанию Windows использует DER-формат направления, в то время как мир open-source (Linux, UNIX) используют PEM. Конечно, существуют инструменты для конвертирования между этими двумя форматами.

Файлы, которые мы будем использовать в примерах:

Имена (и расширения) файлов не является стандартом и могут быть любыми. Я использую такие имена, ведь считаю, что они понятное показывают, что есть что.

Храните ваши личные ключи в тайне! Установите им достаточно ограниченные права (600) и не сообщайте посторонним лицам.

Его напарник, публичный ключ, выглядит так:

Запрос на подписание сертификата (CSR) выглядит так:

Все части связаны между собой. Этот сертификат еще называют самопидписаним, ведь он не был подписан ни одной CA.

Шаг первый: создание частного ключа и запроса на подписание сертификата (CSR)

cPanel

Создаем Private Keys (KEY)

Что такое протокол HTTPS и как на него перейти

  • Новый CSR будет создан, вы увидите подтверждение.

Новый CSR будет создан, вы увидите подтверждение.

Новый CSR будет создан, вы увидите подтверждение.

Linux, FreeBSD

Убедитесь, что OpenSSL установлен:

Если OpenSSL отсутствует, то нужно его установить:

  • Debian, Ubuntu и подобные
  • Red Hat, CentOS и подобные
  • FreeBSD

Теперь сгенерировать ключ и CSR мы можем одной командой:

Будет сгенерирован частный ключ, а вам попросят ввести определенные данные для CSR:

Internet Infromation Server (IIS)

Internet Infromation Server (IIS)

Что такое протокол HTTPS и как на него перейти

Common Name

Cryptographic Service Provider

Что такое протокол HTTPS и как на него перейти

Общая инструкция

Самоподписанные сертификаты

Также сертификат можно подписать самому, без помощи CA. Он будет так же криптографически надежным по сертификат от CA, с этой лишь разницей, что браузеры не будут ему доверять. Но это очень полезно для тестирования.

Пример сертификата выше является самоподписанным. А создать сертификат самому можно с помощью OpenSSL:

После этого вы сможете установить его на своем сервере. Если вы покупали сертификат в своего хостинг-провайдера (так часто бывает), скорее всего, является автоматизированная система по установлению сертификата. Если нет — вам нужно будет сделать это самому.

Шаг третий: установка сертификата

cPanel

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Если этот файл уже существует, то скопируйте только две последние строчки и вставьте сразу после строки RewriteEngine On.

Linux, FreeBSD

Переместите ваш ключ, CSR и сертификат в соответствующие им места:

Debian, Ubuntu и подобные, FreeBSD

Red Hat, CentOS и подобные

Владельцем этих файлов должен быть супер-пользователь, а разрешения установлены в 600.

Debian, Ubuntu и подобные

Red Hat, CentOS и подобные

  • убедиться, что mod_ssl установлено на вашем сервере,
  • загрузить сертификат на сервер,
  • редактировать конфиги Apache

Начнем с mod_ssl. В зависимости от вашей ОС, должна работать какая-то из этих команд

Если модуль не установлен, выполните следующие команды:

Debian, Ubuntu и подобные

Red Hat, CentOS и подобные

Измените конфиг Apache:

Debian, Ubuntu и подобные

Red Hat, CentOS и подобные

Эта конфигурация была сгенерирована с помощью Mozilla SSL Configuration Generator. Удостоверьтесь, что вы указали пути к сертификату и частного ключа.

Nginx

Измените конфиг nginx:

Debian, Ubuntu, Red Hat, CentOS

Internet Infromation Server (IIS)

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Едва ли мы откроем вам секрет, если сообщим о том, что все операции, производящиеся в сети Интернет — это обмен информацией. То есть когда вы вводите запрос в поисковую строку, заходите на сайт, смотрите фото в Instagram или загружайте какой-либо контент на вашу страницу в социальных сетях — ваш браузер и сервер совершают обмен данными. Все, вводимые запросы в поисковой строке проходят путь от пользователя к серверу, а затем наоборот.

Гипертекст — это файл, созданный при помощи специального программного языка разметки, который включает в себя гиперссылки. Иными словами, ссылки на сторонний объект в файле или на иной элемент, находящийся на локальном диске или связанных компьютерах, объединенных через каналы обмена сведений для обеспечения передачи данных.

Скриншот оповещение от браузеров об отсутствии https протокола и незащищенном соединении

Как подключить SSL-сертификат к сайту, мы расскажем чуть ниже.

Что это такое SSL-сертификат и зачем он нужен

Благодаря ему все данные передающиеся от посетителя к сайту и наоборот, шифруются так, что они становятся недоступными для чтения мошенников, системных администраторов и даже провайдеров.

Как проверить SSL на истечение срока

Для того, что бы проверить срок действия SSL-сертификата на сайте вам нужно:

Скриншот инструкция как проверить срок дейтсвия ssl сертификата шаг 1 и 2

Шаг с 1-го по 2-й: инструкция как проверить срок дейтсвия SSL-сертификата

Скриншот инструкция как проверить срок дейтсвия ssl сертификата шаг 3

Шаг 3: инструкция как проверить срок дейтсвия SSL-сертификата

Скриншот инструкция как проверить срок дейтсвия ssl сертификата шаг 4

Шаг 4: инструкция как проверить срок дейтсвия SSL-сертификата

По большому счету, вы можете проверить дату истечения срока через любой браузер, но, визуальная составляющая страниц проверки непохожа на Chrome.

Разновидности SSL-сертификатов

SSL-сертификаты в основном делятся по двум категориям:

  1. Центры сертификации, которые их производят.
  2. Типы самих продуктов.

Центр сертификации — это компания, имеющая специальную лицензию на распространение цифровых сертификатов. Она занимается проверкой сведений, расположенных в CSR, перед передачей сертификата. В базовых сертификатах проводится проверка непосредственно самого домена. В более защищенных происходит детальная диагностика самого предприятия, которое подает запрос на получение SSL.

CSR (Certificate Signing Request) — заявка на установку сертификата.

Разбирая первую категорию хочется отметить, что существует около 10 известных центров сертификации, занимающихся разработкой данного продукта. Давайте заострим внимание на двух самых популярных среди них — Sectigo и Let’s Encrypt.

Let’s Encrypt известен тем, что у них есть возможность бесплатной установки сертификатов на 3 месяца. Однако, в отличие от многих других центров сертификации, они не несут материальной ответственности за взлом зашифрованной транзакции и потери переводимых денег. Да, действительно, вероятность того, что такая ситуация произойдет — один на миллион, но факт отсутствия страховки у них присутствует.

Sectigo производит несколько типов платных SSL. Давайте разберем какие типы сертификатов бывает на примере тех, которые выпускает Sectigo:

  • SectigoPositiveSSL — базовый и дешевый тип сертификата. Именно поэтому он один из самых востребованных среди остальных. К тому же его не трудно зарегистрировать в плане документации — вам необходимо только подтвердить то, что вы являетесь владельцем вашего доменного имени. Процедура оформления длится не долго (от одного часа до четырех).
  • SectigoPostitiveWildcardSSL — отличительная черта данного сертификата в том, что помимо домена он распространяется на все поддомены указанного адреса (в случае необходимости). Это намного экономнее в случае, если у вас несколько поддоменов и вы собираетесь устанавливать персональный SSL на каждый из них.
  • Sectigo EV SSL — сертификат с повышенным уровнем безопасности, поскольку у него происходит более усиленная проверка. Его характерная особенность заключается в том, что во время обмена информацией, и предоставления зашифрованного ключа, помимо самой проверки требуется личное подтверждение от владельца сайта или организации. Как правило на его выпуск уходит несколько дней. Именно такой тип SSL находится на ресурсах, где указанно наименование организации перед адресом сайта.

Как установить SSL-сертификат на сайт

Итак, что же нужно сделать, чтобы получить SSL-сертификат? Вам необходимо создать запрос на подтверждение SSL (Certificate Signing Request). Во время формирования данного запроса, вы должны будете ответить на несколько вопросов, нацеленных на конкретизацию сведений о вашем доменном имени и организации. По итогам ваш web-сервер сгенерирует 2 вида криптографических ключей — персональный и общий.

  • персональный ключ является засекреченным и все сведения в нем зашифрованы от третьих лиц;
  • общий ключ не является приватным для третьих лиц и содержится в запросе CSR. Сведения, находящиеся в нем можно без труда посмотреть через специальные сервисы CSR Decoder.

Как мы уже сказали, если вы хотите получить сертификат без затраты финансов, то можете сделать это через центр сертификации Let’s Encrypt, который выдает их бесплатно за счет организаций, которые его спонсируют, таких как: Facebook, Mozilla, Chrome и Cisco.

Мы рассмотрели процедуру того — как подключить SSL-сертификат к сайту, давайте теперь разберем какие сведения содержит в себе SSL и на какие типы он делится.

Изображение безопасное соединение https протокол

Безопасное соединение — SSL-сертификат

Какие данные содержит в себе SSL-сертификат

В SSL расположены следующие сведения:

  • уникальное имя владельца сертификата;
  • зашифрованный ключ;
  • дата получения SSL;
  • дата истечения срока;
  • наименование центра сертификации;
  • электронная подпись изготовителя.

Виды сертификатов по типу валидации

  • DV (Domain Validation) — сертификаты, удостоверяющие только домен;
  • OV (Organization Validation) — подтверждающие доменное имя и компанию;
  • EV (Extendet Validation) — отличаются своей расширенной проверкой.

Типы SSL-сертификатов по своим свойствам и ценам

Базовые SSL-сертификаты

Автономно производящиеся сертификаты, которые удостоверяют только доменное имя. По параметрам соответствуют для любого ресурса.

Средняя стоимость: от 1 300 рублей в год.

SGC-сертификаты

Отличительны повышенной протекцией в плане степени шифрования. Подходят для браузеров с поддержкой 40-ка или 56-и битного шифрования. Если воспользоваться данным сертификатом, то уровень шифрования автоматически вырастет до 128 бит.

Средняя стоимость: от 21 000 рублей в год.

Wildcard-сертификаты

Средняя стоимость: от 12 500 рублей в год.

SAN-сертификаты

Полезны для пользователей, которым необходим один сертификат для нескольких доменных имен, расположенных на одном сервере. Как правило для обслуживания доступно до пяти доменных имен.

Средняя стоимость: от 28 000 рублей в год.

EV-сертификаты

Сертификаты, рассчитанные на частные компании или государственные организации.

Средняя стоимость: от 17 500 рублей в год.

Сертификаты c поддержкой IDN

Такая функция встречается у центров сертификации не часто, поскольку далеко не все сертификаты поддерживают IDN домены.

Средняя стоимость: от 27 000 рублей в год.

Как выбрать самый дешевый сертификат

Одни из самых недорогих EV сертификатов, продаются в центре сертификации Geotrust. Один из самых дешевых вариантов wildcard вы можете приобрести через RapidSSL. SGC сертификаты вы можете купить только у Thawte или Verisign.

На заметку

Мы будем признательны если вы оставите свое мнение о прочитанном материале в комментариях.

Начнем с самого базового.

Для описания процесса общения между клиентом и сервером используется куча акронимов, они часто путают людей, недостаточно хорошо разбираются в внутреннем строении интернета.

Зашифрованный канал устанавливается с помощью протокола Transport Layer Security (TLS), который раньше назывался Secure Socket Layer (SSL). Эти сроки, как правило, взаимозаменяемы, ведь SSL 3.0 был заменен TLS 1.0. SSL был протоколом, разработанным Netscape, в то время как TLS — стандарт IEFT. Все версии SSL (1.0, 2.0, 3.0) считаются устаревшими из-за проблем с безопасностью и будут вызывать предупреждения в браузеров. Версии TLS (1.0, 1.1, 1.2) используются и сейчас, а TLS 1.3 находится в разработке.

Конфиденциальность

Целостность

Идентификация

Криптография: короткое интро

Конфиденциальность

Конфиденциальность — основа приватности. Именно она гарантирует, что информацию не получат третьи лица. Обычно для этого информацию обрабатывают таким образом, что она по понятной (так называемой plaintext) становится непонятной (шифротекст, ciphertext). Этот процесс называется шифрованием (encryption). Обратный процесс — расшифровкой (decryption). Делать это можно по-разному, и для этого создано много алгоритмов шифрования.

И если две стороны хотят общаться с шифрованием, они должны согласовать два аспекта:

Алгоритм шифрования.
С какими параметрами, паролем или правилами (секретом) происходит шифрования.
Существует два вида алгоритмов шифрования:

Https-шифрование (encryption) и Обратный процесс - расшифровкой (decryption)

Асимметричные методы такой проблемы нет. Они используют пару ключей: когда информацию зашифровано с помощью одного ключа, расшифровать ее можно только другим.

Как это работает? Представим, что Алиса и Боб хотят обмениваться какой-либо информацией конфиденциально. Каждый из них имеет пару ключей: частный и публичный. Частные ключи известны только их владельцам, публичные доступны любому.

асимметричные методы шифрования

Теперь в игру вступает симметричное шифрование, ведь оно куда быстрее асимметричное. Когда клиент и сервер конфиденциально обменялись ключами, для дальнейшего общения используется алгоритмы симметричного шифрования.

Первая асимметричная часть рукопожатие (handshake) называется обменом ключами (key exchange).

Целостность

Идентификация

CA — это организации, которым доверено подписывать сертификаты. Операционные системы как Windows, macOS, iOS и Android имеют собственный список доверенных сертификатов. Также его имеет Firefox.

Позже все сертификаты проверяются и считаются доверенными — операционной системой, браузером или другим доверенным объектом. Этот механизм называется цепочкой доверия.

Https-механизм называется цепочкой доверия

Вы можете сами добавить CA в список доверенных, это очень удобно при работе с самопидписанимы сертификатами (о них мы поговорим позже).

В большинстве ситуаций нужно достоверно идентифицировать только сервер. Пользователи магазина должны быть уверенными в его подлинности, поэтому сертификат нужен только сервера. В других системах, например государственных, нужно также точно идентифицировать и клиента, тогда им обоим нужны сертификаты, но это уже выходит за рамки данной статьи.

Есть несколько типов сертификатов, но все можно разделить по категориям.

1. Валидация сервера- Domain validated (DV)

Extended validation (EV)

EV сертификат гарантирует, что домен принадлежит определенной компании. Это вид сертификата, вызывает наибольшее доверие. Он выдается после проверки CA организации, обладающей доменом. Это проверка:

Теперь рядом с замочком отображаться название компании, владеющей доменом, клик по которой покажет детали о компании, например, ее название и адрес. Стоят такие сертификаты от 150 до 300 USD в год.

Organization validated (OV)

Эти сертификаты похожи на EV, они гарантируют, что домен принадлежит организации, но ее название не отображается перед URL. То есть вам нужно соблюсти все правила как и для EV-сертификата, но без его плюсов. Поэтому этот сертификат наименее популярен. Стоит от 40 до 100 USD в год.

2. Количество доменов

Один домен

Несколько доменов (UCC / SAN)

Такие типы сертификатов еще называют Unified Communications Certificate (UCC) или Subject Alternative Names (SAN), они могут покрывать сразу несколько доменов (или поддоменов) до определенного лимита. Обычно в цену включена оплата трех-пяти доменов, а остальные можно добавить за дополнительную цену.

Wildcard

Конфигурация

Каждый из этих пунктов имеет свой набор возможных алгоритмов (некоторые из них уже устарели), которые используют ключи разной длины. Частью handshake является согласование между клиентом и сервером, какие алгоритмы будут использованы.

И поэтому вам нужно будет сделать несколько решений в конфигурации.

Коды

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

Список комбинаций, поддерживаемых OpenSSL, устроен таким образом, что самая надежная комбинация расположена сверху, а слабая — снизу. Это имеет смысл, ведь выбор комбинации происходит перебором этого списка, пока не найдется комбинация, которая поддерживается и сервером и браузером. Поэтому лучше сначала попробовать более защищены способы.

На Википедии есть сравнительный список алгоритмов и их поддержка различными версиями SSL и TLS.

Тип ключа

Сертификаты с использованием эллиптической криптографии быстрее и меньше нагружают CPU, чем RSA-сертификаты, играет важную роль на мобильных устройствах. Но некоторые сервисы (на момент написания, 12 июля 2017 года, среди них были Amazon, CloudFront и Heroku) не поддерживают такие сертификаты.

256-битный ECC ключ признано достаточным.

Вы, наверное, заметили, что я не привел никаких конкретных цифр относительно влияния на быстродействие. Серверы бывают разные по комплектации, мощностями, а также на быстродействие влияет количество посетителей сайта.

Процедура получения сертификата

Для начала, существует два формата хранения информации — DER и PEM. Первый является бинарным форматом, а другой это base64-encoded (текстовый) DER-файл. По умолчанию Windows использует DER-формат направления, в то время как мир open-source (Linux, UNIX) используют PEM. Конечно, существуют инструменты для конвертирования между этими двумя форматами.

Файлы, которые мы будем использовать в примерах:

Имена (и расширения) файлов не является стандартом и могут быть любыми. Я использую такие имена, ведь считаю, что они понятное показывают, что есть что.

Храните ваши личные ключи в тайне! Установите им достаточно ограниченные права (600) и не сообщайте посторонним лицам.

Его напарник, публичный ключ, выглядит так:

Запрос на подписание сертификата (CSR) выглядит так:

Все части связаны между собой. Этот сертификат еще называют самопидписаним, ведь он не был подписан ни одной CA.

Шаг первый: создание частного ключа и запроса на подписание сертификата (CSR)

cPanel

Создаем Private Keys (KEY)

Что такое протокол HTTPS и как на него перейти

  • Новый CSR будет создан, вы увидите подтверждение.

Новый CSR будет создан, вы увидите подтверждение.

Новый CSR будет создан, вы увидите подтверждение.

Linux, FreeBSD

Убедитесь, что OpenSSL установлен:

Если OpenSSL отсутствует, то нужно его установить:

  • Debian, Ubuntu и подобные
  • Red Hat, CentOS и подобные
  • FreeBSD

Теперь сгенерировать ключ и CSR мы можем одной командой:

Будет сгенерирован частный ключ, а вам попросят ввести определенные данные для CSR:

Internet Infromation Server (IIS)

Internet Infromation Server (IIS)

Что такое протокол HTTPS и как на него перейти

Common Name

Cryptographic Service Provider

Что такое протокол HTTPS и как на него перейти

Общая инструкция

Самоподписанные сертификаты

Также сертификат можно подписать самому, без помощи CA. Он будет так же криптографически надежным по сертификат от CA, с этой лишь разницей, что браузеры не будут ему доверять. Но это очень полезно для тестирования.

Пример сертификата выше является самоподписанным. А создать сертификат самому можно с помощью OpenSSL:

После этого вы сможете установить его на своем сервере. Если вы покупали сертификат в своего хостинг-провайдера (так часто бывает), скорее всего, является автоматизированная система по установлению сертификата. Если нет — вам нужно будет сделать это самому.

Шаг третий: установка сертификата

cPanel

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Если этот файл уже существует, то скопируйте только две последние строчки и вставьте сразу после строки RewriteEngine On.

Linux, FreeBSD

Переместите ваш ключ, CSR и сертификат в соответствующие им места:

Debian, Ubuntu и подобные, FreeBSD

Red Hat, CentOS и подобные

Владельцем этих файлов должен быть супер-пользователь, а разрешения установлены в 600.

Debian, Ubuntu и подобные

Red Hat, CentOS и подобные

  • убедиться, что mod_ssl установлено на вашем сервере,
  • загрузить сертификат на сервер,
  • редактировать конфиги Apache

Начнем с mod_ssl. В зависимости от вашей ОС, должна работать какая-то из этих команд

Если модуль не установлен, выполните следующие команды:

Debian, Ubuntu и подобные

Red Hat, CentOS и подобные

Измените конфиг Apache:

Debian, Ubuntu и подобные

Red Hat, CentOS и подобные

Эта конфигурация была сгенерирована с помощью Mozilla SSL Configuration Generator. Удостоверьтесь, что вы указали пути к сертификату и частного ключа.

Nginx

Измените конфиг nginx:

Debian, Ubuntu, Red Hat, CentOS

Internet Infromation Server (IIS)

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Что такое протокол HTTPS и как на него перейти

Эта статья была написана в конце 1990-х или начале 2000-х годов. И хотя базовые принципы изложенные в данной статье до сих пор применимы, я рекомендую обратиться к более современным статьями на эту тему.

1. Введение

Протокол SSL (Secure Sockets Layer protocol, протокол защищенных сокетов) [SSL3] предоставляет способ для аутентификации, контроля целостности, и конфиденциальности при использовании Web.

2. Методы криптографии

Алгоритмы шифрования

Однонаправленные Хэш-функции

Цифровые подписи

3. Сертификаты

Содержимое сертификата

Субъект: отличительное имя, открытый ключ
Кем выдан: отличительное имя, подпись
Сроки действия: дата начала действия, дата окончания действия
Служебная информация: версия, порядковый номер
Расширения:
общее имя (CN) Имя субъекта, например CN=Frederick Hirsch
Организация или компания (O) Имя данной организации, например O=The Open Group
Организационная единица (OU) Имя организационной единицы, отдела, подразделения и т. п., например, OU=Research Institute
Город/Расположение (L) Город, в котором расположен субъект, например Cambridge
Область/Район (SP) Область/Район, например Massachusetts
Страна (C) Страна (код ISO), например US

Двоичный формат сертификата определяется с помощью нотации ASN.1 [ASN.1]. Эта нотация определяет, как содержимое сертификата преобразуется в двоичный вид. Двоичный формат сертификата определен с использованием правил DER, которые основаны на более общих правила BER. Двоичная форма может быть преобразована с использованием кодирования base64 в текст (ASCII ) для тех случаев, когда нельзя использовать двоичный формат. Такой вид называется PEM (Privacy Enhanced Mail) и сертификат помещается между линиями:

Центры сертификации

Центр сертификации подтверждает, что владелец закрытого ключа, действительно тот, чье имя указано в сертификате. Центр сертификации должен проверить данные, указанные в запросе перед выдачей сертификата. Если Алиса послала запрос на персональный сертификат, центр сертификации должен проверить, что это действительно та Алиса, чье имя будет указано в сертификате.

Цепочки сертификации

Центр сертификации может так же выдать сертификат другому центру сертификации. Проверяя сертификат, Алисе так же нужно будет проверить сертификат того, кто выдал предыдущий сертификат и так далее пока не дойдет до того сертификата, которому доверяет. Она может решить, что доверяет только ограниченному количеству центров сертификации, для уменьшения риска, что один из цепочки сертификатов плохой.

Создание корневого центра сертификации

Есть ряд компаний, таких как VeriSign [VeriSign] которые играют роль корневых центров сертификации. Они предоставляют методики для запроса сертификатов, имеют правила для проверки информации, выдачи сертификатов и управления ими. Хотя это опасно в Интернете, в интранете может быть полезно, когда организации имеют простой способ для аутентификации серверов и пользователей.

Управление сертификатами

Организация центра сертификации это ответственность, требующая объединения административных, управленческих и технических систем. Центр сертификации не только выдает сертификаты, но и управляет ими. Это значит, он должен определять сроки действия сертификатов, продлять их и поддерживать списки выданных сертификатов, которые недействительны (certificate revocation lists, CRL). Если Алиса работает в компании и имеет сертификат как сотрудник, то когда она увольняется, сертификат должен быть отозван. Сертификат может быть широко распространен, и нельзя в нем самом указать, что он был отозван. При проверке действительности сертификата необходимо связаться с центром сертификации, выдавшим этот сертификат для того, чтобы проверить, не был ли он отозван, но часто эту часть процесса нужно выполнять вручную. В системах, где отзывы сертификатов имеют значение, необходимо убедиться, что список отозванных сертификатов проверяется.

Когда используется центр сертификации, который по умолчанию не известен браузеру, необходимо установить сертификат центра сертификации, чтобы было можно проверять сертификаты серверов, выданные этим центром. Это может быть опасно, поскольку, установив один раз такой сертификат, браузер будет принимать любые сертификаты выданные этим центром. Цепочки сертификатов позволяют предоставлять сертификаты вместе с сертификатами тех, кто их выдал, чтобы можно было проверить сертификат, даже если сертификаты промежуточных центров сертификации не были установлены в браузере (или на сервере).

4. SSL

Протокол позволяет использовать по выбору различные алгоритмы для шифрования, хеширования, цифровой подписи. Это позволяет выбрать алгоритм исходя из юридических, экспортных или других ограничений, а так же позволяет протоколу использовать преимущества новых алгоритмов. Выбор согласуется между клиентом и сервером на стадии установки сеанса.

Существует несколько версий протокола SSL.

Версия Источник Описание Поддержка в браузерах
SSL 2.0 опубликовано Netscape исходный протокол Netscape 3.0, Internet Explorer 3.0
SSL 3.0 устаревший Internet Draft версия, предотвращающая некоторые атаки, добавлены новые алгоритмы и поддержка цепочек сертификатов Netscape 3.0, Internet Explorer 3.0
TLS 2.0 IETF draft пересмотренный SSL 3.0 none

Проблемная группа проектирования Internet (Internet Engineering Task Force, IETF) работает над стандартом TLS (Transaction Layer Security - протокол защиты транспортного уровня).

Обзор протокола

Однажды установленное сеанс может быть использовано повторно, чтобы избежать потерь производительности из-за многошаговой процедуры установки соединения.

Установка сеанса

Установка сеанса начинается с работы протокола квитирования (handshake sequence) между клиентом и сервером. Эта последовательность может зависеть от того, настроен ли сервер предоставлять сертификат, и требует ли он наличие сертификата у клиента. Возможно так же, для согласования параметров алгоритма шифрования потребуются дополнительные шаги. В этом документе описывается типичный сценарий, а остальные возможности SSL не рассматриваются.

Протокол квитирования используется клиентом и сервером для:

Рис. 1. Упрощенный порядок квитирования (Handshake)

Согласование набора параметров шифрования позволяет выбрать клиенту и серверу такие параметры, которые они оба поддерживают. Спецификация SSL 3.0 определяет 31 набора параметров. Набор параметров шифрования состоит из:

Метод обмена ключами определяет, как клиент и сервер согласуют общий ключ для симметричного алгоритма шифрования. The key exchange method defines how the shared secret symmetric cryptography В SSL 2.0 для обмена ключей используется RSA. В SSL 3.0 возможен выбор между RSA, при использовании сертификатов, и методом обмена ключами по Диффи-Хеллману (Diffie-Hellman) для обмена ключами без сертификатов и без предыдущей связи между клиентом и сервером [Kaufman].

Выбор метода обмена ключами включает решение использовать или не использовать цифровые подписи при обмене ключами, и какой способ цифровой подписи использовать. Подпись закрытым ключом защищает от атак человек по середине (man-in-the-middle-attack) во время обмена информацией, используемой для выработки общего ключа.

В SSL используются симметричные алгоритмы шифрования для шифрования данных в течение сеанса. Возможны 9 вариантов, включая отказ от шифрования:

Режим CBC (Cipher Block Chaining - сцепление блоков шифра), предыдущий зашифрованный блок используется при шифровании текущего блока. DES - Data Encryption Standard [Schneier, ch12], имеет множество вариантов (включая DES40 and 3DES_EDE). Idea (один из наиболее стойких алгоритмов) и RC2 являются собственностью компании RSA [Schneier, ch13].

Выбор функции хеширования определяет, как будет создаваться хеш блока данных. SSL поддерживает:

SHA был разработан для использования совместно с DSS (Digital Signature Standard - стандарт цифровой подписи).

Рис. 2. Стек протоколов SSL

Передача данных

Рис. 3. Протокол записи SSL

Использование SSL

5. Реализация SSL

Есть два известных пакета для работы с несимметричным алгоритмом RSA:

RSARef Образец реализации RSA, неподдерживаемый исходный код библиотеки, может быть использован в бесплатных и некоммерческих приложениях. Компания Consensus Development Corp. продавала лицензии на коммерческое использование, но сейчас это уже не так.

Эти пакеты для работы с открытыми ключами включают полный набор несимметричных алгоритмов (включая RSA и метод обмена ключами Деффи-Хеллмана), симметричные алгоритмы, хэш-функции. Они могут быть использованы в реализациях SSL. Наиболее известные библиотеки для работы с SSL:

SSLPlus Коммерческий пакет с исходным пакетом от Consensus Development Corp., улученный SSLRef 3.0. Для использования нужен BSAFE 3.0 (from RSA).

OpenSSL OpenSSL-0.9.4 (OpenSSL-0.9.4.tar.gz) свободная, не коммерческая реализация SSL 2.0 и SSL 3.0 и TLS 2.0. Включает реализацию несимметричных алгоритмов, которая может быть использована за приделами США. В Штатах из-за патентных ограничений необходимо использовать RSARef или BSAFE3.0. SSLeay предоставляет недорогую возможность для использования SSL. [OpenSSL FAQ]

Литература для дальнейшего изучения

Общие вопросы

Elgamal

Kaliski

Kaufman

Charlie Kaufman, Radia Perlman, Mike Speciner, Network Security: PRIVATE Communication in a PUBLIC world, Prentice Hall, 1995.

Koops

Phaos

Schneier

Сертификаты

Kaliski

Microsoft Certificate Specifications

Netscape Certificate Specifications

1) В наших исследованиях использовался тот факт, что патентные ограничения не распространяются на некоммерческие эксперименты, а экспортные ограничения позволяют использовать слабую криптографию. Спецификация SSL 3.0 содержит некоторую информацию об экспортных ограничениях в США. Мы не рассматриваем здесь патентные или экспортные ограничения, но вам стоит знать о них, соблюдать их, и консультироваться у юристов. Есть ряд обзоров на эту тему [Koops]

Читайте также: