Перевод сайта на HTTPS и установка SSL сертификата от Let’s Encrypt

HTTPS — это доработанный HTTP, который поддерживает шифрование поверх SSL и TLS, и не является отдельным протоколом передачи данных. Данная технология способна защитить пользователя от утечки передаваемых данных во время сниффинговых и MITM атак. Для работы HTTPS у веб-сайта должен быть надежный подписанный SSL сертификат, с самоподписанным сертификатом браузер будет выдавать предупреждение о том, что сертификат не является подлинным.

По запросу «SSL сертификат» в поисковике Google вам не составит труда найти конторы, которые за определенную плату подпишут вам SSL сертификат. Но если вы ведете личный блог, или ваш сайт не монетизирован, то хорошим решением станет SSL сертификат от Let’s Encrypt. Эта организация не является коммерческой, а также программное обеспечение для автоматизации установки SSL сертификата имеет открытый исходный код.

Скрипт выполняющий установку называется Certbot, он доступен для всех UNIX платформ. На официальной странице проекта есть подробные инструкции по установке, а также документация. Для примера продемонстрируем установку на VPS сервер под управлением Ubuntu Server 14.04.5.

Заходим через SSH, и обновляем список пакетов. Устанавливаем пакет software-properties-common, из которого нам будет нужна команда для добавления PPA репозитория.

sudo apt update

sudo apt install software-properties-common

Теперь добавляем PPA репозиторий проекта Certbot, еще раз обновляем список пакетов и устанавливаем пакет утилиты предназначенной специально для сервера Apache2.

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache

После установки, запускаем скрипт для установки или получения сертификатов.

sudo certbot —apache

Скрипт просканирует все активные сайты и выведет их список. Либо вводим нужные номера через пробел, либо просто нажимаем Enter для генерации сертификата для всех доступных сайтов.

Перед завершением работы, скрипт предложит вам на выбор 2 вида доступа к выбранным сайтам:

  • Easy — будет доступно посещение как через HTTP, так и через HTTPS;
  • Secure — посещать сайт(ы) можно будет только через HTTPS, при попытке подключения через HTTP будет осуществлено автоматическое перенаправления на HTTPS;

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

Через некоторое время скрипт завершится. Чтобы протестировать работу HTTPS перейдем на один из наших веб-сайтов.

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

Не стоит забывать, что SSL сертификаты имеют свой срок годности. Для платных сертификатов этот период обычно составляет 1 год. Но сертификаты от Let’s Encrypt обычно подписываются на срок, который составляет чуть больше месяца. После истечения этого срока нужно продлевать сертификат. Для автоматического продления отлично подойдет созданная в Cron задача, которая будет раз в сутки проверять, стоит ли продлевать сертификат.

Для редактирования файла Crontab используется команда:

crontab -e

Записываем в файл новую задачу на выполнение раз в сутки:

sudo certbot renew

Сохраняем файл сочетанием горячих клавиш [Ctrl + O] и выходим [Ctrl + X].

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

ShiftHackZ

ShiftHackZ

Автор блога LocalHost // Blog. Интересуюсь компьютерными технологиями, системным администрированием и веб-разработкой. Днями напролет провожу время за своим компьютером и самосовершенствуюсь. Подробнее

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *