В последнее время проявляется тенденция использования протокола HTTPS вместо привычного HTTP. Мало того, этого требуют многие социальные сети при попытке публикации в них приложений, в том числе Blend4Web. Давайте рассмотрим, что это за зверь и как его приручить.
Протокол HTTPS является продолжением известного HTTP и обеспечивает шифрование в целях повышения безопасности. Для этого необходимо получить и подключить сертификат SSL.
Сертификаты SSL бывают самые разные и от этого зависит их стоимость. Какие-то заверяют только домен, какие-то используются для электронной коммерции. Сертификат начального уровня можно получить бесплатно или даже сгенерировать самостоятельно. Последний вариант не совсем удобен, так как при попытке открыть такой сайт, веб-браузер выдаст сообщение о сомнительном сертификате. В некоторых случаях, это может напугать неподготовленного пользователя.
Итак, если вы не желаете платить деньги за сертификат, то остается второй вариант — добыть бесплатный. Существует несколько сервисов, которые позволяют это сделать. В последнее время набирает популярность сервис Let’s Encrypt, партнерами и спонсорами которого являются такие известные организации, как Mozilla Foundation, Cisco Systems, Linux Foundation и др.
Этот сервис позволяет бесплатно получить полноценный сертификат SSL, который принимается всеми веб-браузерами. Однако он выдается всего на 90 дней. Зато есть несомненный плюс перед другими бесплатными сертификатами — нет ограничений на коммерческую деятельность сайта.
Рецепт для ленивых
Сервис Let’s Encrypt предоставляет своеобразное API для создания и продления своих сертификатов, а также, в духе лучших традиций Linux, предлагается консольная утилита, позволяющая делать это автоматически. Мы рассмотрим работу с ней, но пока предлагаю остановиться на других, сторонних программных решениях.
Во-первых, чтобы не городить огород, изучите предложения на сайте своего хостинга. Дело в том, что услуга по предоставлению сертификата SSL от Let’s Encrypt стала популярной и имеется у многих хостеров. Как правило, это делается автоматически в панели управления.
Во-вторых, если вы хозяин целого сервера и используете панель управления сервером, то у вас есть шанс сделать это в ней. В последних версиях популярных оболочек ISPManager и CPanel уже появились модули для генерации и продления сертификатов от Let’s Encrypt.
В случае ISPManager это можно сделать, если включить модуль в настройках программы. Только убедитесь, что панель имеет версию не менее 5.65.0.
Для CPanel это делается в закладке Security.
Продвинутый user
Если у вас нет панели управления или почему-то не удается создать сертификат, то можно попробовать сторонние клиенты, набор которых имеется на сайте центра сертификации. Только учтите, что большая часть из них являются неофициальными.
Мне, например, приглянулся сервис ZeroSSL, который выполняет все действия по генерации в окне веб-браузера. Давайте посмотрим, как с ним работать.
Перейдите по этому адресу для запуска конструктора и заполните поля. Обратите внимание, что в качестве проверки вы можете указать один из двух вариантов: с помощью запроса HTTP или через DNS-запись. В этом примере я выбрал HTTP.
Несколько секунд ожидания и будет сгенерирован код CSR, который нужно скопировать и сохранить в текстовый файл. Нажмите кнопку Next для генерации ключа сервиса, который также следует сохранить.
Следующие этап — проверка.
Здесь все просто. Нужно создать файлы для каждого из регистрируемых доменов с именем в поле File и добавить в них содержимое из поля Text. Для хранения файлов требуется создать путь, типа: root/.well-known/acme-challenge/. Где root — корневой каталог вашего сайта.
После этих действий и нажатия кнопки Next, вам будут выдан сертификат и ключ, а также ID вашего аккаунта в сервисе Let’s Encrypt. Не забудьте их сохранить!
Кульный хакер
Допустим, что вы не доверяете всяким сторонним клиентам и твердо уверены, что Большой Брат следит за вами. В этом случае поможет использование официальной утилиты certbot.
Итак, ваш сервер работает под управлением одного из дистрибутива Linux, и вы имеет доступ к нему через SSH (проще говоря работаете в консоли).
Если у вас Debian, то установить клиент можно непосредственно из репозитария дистрибутива. В иных случаях требуется скачать нужный пакет на сайте разработчиков.
Утилита certbot поддерживает массу опций, но в целом строка для генерации сертификата может выглядеть так:
certbot-auto certonly --email <EMAIL> --agree-tos --webroot -w <DIR> -d <DOMAIN>
Где:
EMAIL — ваш почтовый адрес
DIR — корневой каталог с сайтом
DOMAIN — название домена
Не забудьте, что созданный сертификат нужно обновлять каждые 90 дней. Для этого служит команда ниже. Добавьте ее в задачи планировщика cron, чтобы раз и навсегда забыть проблемы с сертификацией домена.
certbot-auto renew --quiet
О самой установке сертификата лучше узнать у хостера. Впрочем, многие панели управления сайтами или серверами позволяют с легкостью установить его самостоятельно.