Создание и установка бесплатного SSL-сертификата на виртуальном хостинге

Определение

SSL сертификат представляет собой пару состоящую из закрытого (private key) и открытого (public key) ключа. Основной задачей SSL сертификата является шифрование данных, которые передаются между сервером и клиентом. Шифрование необходимо для защиты данных от кражи злоумышленником.

Так как по протоколу http данные (например пароли) передаются в открытом виде, то злоумышленник сможет перехватить их (например при помощи атаки MITM) и воспользоваться ими в своих интересах.

При наличии SSL-сертификата у сайта, данные передаются по защищенному протоколу - https (http + SSL).

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

Владельцем открытого и закрытого ключей является сервер, на котором хостится сайт, однако открытый ключ передаются клиенту - компьютеру, который передает данные на сервер.

Зачем нужен SLL сертификат?

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

Сертификат также позволяет повысить рейтинг сайта в поисковиках. Так, например Google, при ранжировании сайтов, отдает предпочтение тем сайтам, у которых есть SSL-сертификат, т.к. считает сайты без сертификатов потенциально опасными для посещения.

Создание SSL сертификата от компании Let's encrypt

Let's encrypt это надежный удостоверяющий центр выдачи SSL сертификатов. Данный центр выдает бесплатные SSL сертификаты на трехмесячный срок. Каждые три месяца Вам необходимо обновлять сертификаты.

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

Шаг #1: Скачиваем клиент CertBot

Выберите папку для сохранения клиента CertBot. Например, домашний каталог.

cd ~;
wget https://dl.eff.org/certbot-auto;

Установка certbot-auto
Установка certbot-auto

Шаг #2: Устанавливаем права на выполнение

chmod a+x certbot-auto

Делаем файл исполняемым
Делаем файл исполняемым

Шаг #3: Запускаем клиент

./certbot-auto certonly --authenticator manual

При создании самого первого сертификата Вас попросят ввести эл.адрес пользователя и согласиться с условиями сервиса.

Запуск клиента
Запуск клиента

А также предложат подписаться на email-рассылку партнера Let's encrypt.

Предложение подписаться на рассылку
Предложение подписаться на рассылку

Шаг #4: Создаем сертификат

Следующим шагом будет непосредственно создание сертификата.
С этого шага Вы в последующем будет создавать новые сертификаты.

Вводим домен сайта для которого хотим создать сертификат и соглашаемся с тем, что IP-адрес Вашей машины останется в логах сервиса.

Создание сертификата для домена
Создание сертификата для домена

Шаг #5: Создание проверочного файла

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

Для создания файла потребуется создать в корневом каталоге сайта скрытую папку .well-known, для нее нужно создать дочернюю папку acme-challenge, внутри которой и создаем файл с указанным именем и содержимым текстом.

Создание файла верификации
Создание файла верификации

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

Результат создания сертификата
Результат создания сертификата

Шаг #6: Установка сертификата на виртуальном хостинге

Далее необходимо в панеле Вашего виртуального хостинга создать новый SSL-сертификат.

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

  • /etc/letsencrypt/live/meliorem.ru/privkey.pem
  • /etc/letsenctypt/live/meliorem.ru/cert.pem

Их содержимое нужно скопировать в соответствующие поля при создании сертификата в панеле хостинга. Придумайте имя для сертификата. Остальные поля необходимо указать также как на изображении ниже.

Настройка нового сертификата
Настройка нового сертификата

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

Заходим в параметры домена и в поле SSL-сертификат устанавливаем имя только что созданного сертификата.

Подключение сертификата к домену
Подключение сертификата к домену

Теперь Ваш сайт доступен по протоколу https!

Шаг #7: Настройка редиректа

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

В файле .htaccess вставьте следующие строки.

Заключение

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