SSL-сертификаты и безопасный интернет

Сертификаты для localhost

Иногда разработчикам нужен сертификат для доменного имени “localhost” — для локальной разработки, или для распространения внутри нативных приложений для взаимодействия с web-приложением. Let’s Encrypt не предоставляет сертификатов для “localhost”, т.к. во-первых, у этого доменного имени нет определённого владельца, и во-вторых, нет домена первого уровня — например, “.com” или “.net”. Теоретически, возможно настроить доменное имя так, чтобы оно резолвилось на адрес 127.0.0.1 , и выпустить для него сертификат после прохождения проверки DNS. Тем не менее, есть более удачные решения.

При разработке web-приложения обычно запускают локальный web-сервер (Apache, Nginx), настроенный на http://localhost:8000/ . Однако, браузеры по-разному обрабатывают HTTP- и HTTPS-запросы. На HTTPS-странице попытка загрузить Javascript по HTTP-протоколу будет заблокирована. Поэтому, при локальной разработке, используя HTTP, скрипты будут загружаться нормально, но после выкладки на боевые HTTPS-сервера возникнут проблемы. Чтобы избежать такой ситуации, нужно настроить доступ по HTTPS на локальном web-сервере. Но как избавиться от постоянных сообщений об ошибке сертификата, как увидеть “зелёный замок” в адресной строке?

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

Минутка технического объяснения про SSL и HTTPS

Стандартный протокол передачи данных в вебе, который используется с 1992 года, — HTTP. Этот протокол задаёт правила, по которым пользователи запрашивают сайты, а серверы — отдают эти сайты. Протокола — это просто договорённости: «Заголовок страницы передавай так-то, текст — так, пароль проси так». Протокол может быть любым внутри, главное — чтобы все договорились использовать именно его.

Минус протокола HTTP в том, что он передаёт данные в открытом виде. Если на сайте с HTTP ввести данные карточки, то они полетят по каналам связи незашифрованными. Злоумышленник может их перехватить и прочитать — достаточно, например, просто «прослушивать» весь трафик в беспроводной сети.

HTTP — это быстрый, но небезопасный протокол. Его сложно в этом винить: когда его создавали, никто не думал, что на сайтах будут вводить данные кредитных карт. Думали, будут обмениваться результатами научных исследований.

Чтобы решить проблему незашифрованных данных, в 2000 году придумали HTTPS — HyperText Transfer Protocol Secure, безопасный протокол передачи гипертекста. Внутри себя он работает как обычный HTTP, но снаружи шифрует весь свой трафик. Даже если кто-то вклинится посередине, он увидит только шифр, который не получится разобрать.

За шифрование страниц в HTTPS отвечает протокол SSL — Secure Sockets Layer, уровень защищённых сокетов. Сокеты — это такие виртуальные соединения между компьютерами. Защищённый сокет означает, что данные, которые идут внутри от одного компьютера к другому, — в безопасности. Если браузер открывает страницу по такому протоколу, то он перед отправкой на сервер шифрует всё, что вы делаете или вводите на сайте. Самое то, если нужно отправить данные платёжной карты или логин с паролем от сервиса.

На самом деле примерно с 2014 года вместо протокола SSL используют TLS, который задумывался как обновление SSL 3.0. Дело в том, что в 2014 году обнаружили уязвимость в SSL-протоколе, которая позволяет расшифровывать все данные. В TLS конкретно этой уязвимости нет (но наверняка есть другие), поэтому все плавно перешли на него, но по старой памяти и привычке называют всё SSL-соединением и SSL-сертификатами.

Скачать сертификаты для Windows 7 и XP

В том случае если вы сторонник ручной установки сертификатов на ваш компьютер и не хотите запускать стороннее программное обеспечение (вас можно понять) мы выкладываем в общий доступ сертификаты ISRG ROOT X1 сроком действия до 04.06.2035, а также список отозванных сертификатов USERTrust RSA.

Вы можете спросить, почему сама Microsoft не позаботилась об обновлении таких важных сертификатов, и мы должны страдать, и хорошо что Djinn Ru использует другие сертификаты и доступен. А мы ответим — вообще-то уже давно существует обновление KB3004394. Оно наделало тогда много шуму, его даже отзывали и исправляли — вылетал Windows Defender и VirtualBox, не давал ставить другие обновления и вызывал спонтанные появления UAC. Но все это в прошлом, сейчас мы ставим на Windows 7 это обновление. Сертификаты там конечно не настолько свежие как мы разместили выше, но на век Windows 7 все-таки хватит. Обновления вы можете скачать на нашем сервере.

Шаг 3 – Установка сертификата

Переходим в «Сертификаты (CRT)» (Certificates (CRT)) > Генерировать, просмотреть, загрузить или удалить сертификаты SSL. (Generate, view, upload, or delete SSL certificates.)

Установка сертификата

Если ваш сертификат сохранен в формате .crt, вы можете перейти к «Выберите файл сертификата (*.crt).» и загрузить файл с сертификатом, нажав кнопку Choose file и выбрав необходимый файл на компьютере. Затем нажмите кнопку «Загрузить сертификат» (Upload).

Если ваш сертификат сохранен в текстовом формате, тогда скопируйте содержимое сертификата, включая тэги BEGIN/END CERTIFICATE REQUEST, в поле «Вставить сертификат ниже:» (Paste the crt below). Затем нажмите кнопку «Сохранить сертификат» (Upload).

Загрузка нового сертификата

Установка сертификата

Необходимо запустить скачанный файл, на вкладке «Общие» нажать «Установить сертификат».

Выберите расположение «Локальный компьютер» и нажмите «Далее».

Выберите пункт «Поместить все сертификаты в следующее хранилище», нажмите «Обзор», выберите раздел «Доверенные корневые центры сертификации», нажмите «ОК» и «Далее», а в следующем окне – «Готово». При появлении вопросов об установке сертификатов – согласитесь на установку.

После этого перезапустите браузер и вновь попробуйте зайти на необходимый сайт.

Установка OpenSSL и создание сертификата на Linux

Для примера мы рассмотрим генерацию самоподписанного сертификата на сервере с развёрнутой ОС Debian 10.

Для выполнения перечисленных далее команд в ОС должна присутствовать программа sudo и пользователь, под которым они запускаются, должен быть в соответствующей группе. В Debian по умолчанию sudo может отсутствовать, проверьте её наличие командой sudo -V и установите при необходимости с помощью команды apt install sudo (выполняется под учётной записью root). А для добавления пользователя с логином user в группу sudo выполните sudo usermod -a -G sudo user .

Некоторые Linux дистрибутивы поставляются с уже установленным пакетом openssl. Чтобы проверить, установлен ли этот пакет у вас, в терминале выполните в терминале команду openssl version . Если в ответ появится текст вида OpenSSL 1.1.0l 10 Sep 2019 , то перейдите к шагу 3.

    Обновите установленные в системе пакеты с помощью консольной команды:

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector