Бесплатный SSL-сертификат для ленивых «чайников»

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

Инструкция идеально подойдет тем, у кого сайт на WordPress, а домен зарегистрирован в RU-CENTER

Изначально я заморочился совсем другим, ко мне обратился один владелец интернет-магазина запчастей для мобильных устройств и спросил, как можно снизить нагрузку на хостинг. На тот момент сайт был недоступен по причине блокировки за превышение нагрузки в 400+ процессорных минут при допустимом максимуме в 60 минут. Поскольку финансовые возможности были не большие, а CMS какой-то древней и глючной, в качестве варианта мною было предложено попробовать Cloudflare. Что там в итоге получилось, я не знаю, ибо человек сказал спасибо и исчез.

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

Добавив сайт, я задумался. А если у меня на сайте HTTPS? По логике вещей он перестанет работать. Честно говоря, я не специалист в этой области, я решил загуглить. Как оказалось, у Cloudflare есть универсальный SSL-сертификат. Тему эту запустили ещё в 2014-м году. Можно пользоваться халявным, можно загрузить свой или купить, скажем так, выделенный сертификат. Не будем отвлекаться, мы ведь пришли за халявой.

В общем чтобы получить заветный зеленый замочек в адресной строке рядом с адресом своего сайта, нам потребуется добавить свой сайт в Clodflare. Но прежде нам потребуется получить административный доступ к домену своего сайта. К счастью, регистраторов у нас не так много, так что наверняка по каждому есть инструкции. В моем случае это RU-CENTER, на его примере я покажу как получить доступ к администрированию домена, но для начала зарегистрируемся в Cloudflare.

Минусы подобного решения

Самый большой минус в том, что ответ в защищенном виде от Cloudflare, а вот Cloudflare получает его от нашего сайта по HTTP, то есть чисто гипотетически существует вероятность перехвата, но нас ведь мало это волнует, поскольку нам важно наличие халявного  HTTPS, а если бы нам была важна какая-то безопасность, то мы бы просто купили бы сертификат. Но на самом деле минус заключается не в угрозе безопасности, а в другой проблеме. Поскольку, как я уже говорил, Cloudflare производит запрос к серверу с нашим сайтом через HTTP, наш сайт не предполагает о том, что фактически он работает через HTTPS и соответственно все пути к файлам будут иметь HTTP и будут блокироваться браузером.

Особенно эта проблема ощущается в работе WordPress, при переводе его на HTTPS, он утопает в бесконечных редиректах. Происходит это как раз по причине конфликта, поскольку сервер работает по HTTP, а WordPress мы заставляем работать через HTTPS. Решается эта проблема установкой плагина CloudFlare Flexible SSL. Этот плагин не требует настройки и начинает работать сразу после активации. В случае с другими CMS вам потребуется искать решение этой проблемы самостоятельно.

Ещё один существенный минус заключается в том, что данное решение не начинает работать сразу. Это происходит по причине того, что требуется время на обновление DNS-серверов, поскольку мы у своего домена меняем записи касающиеся именно DNS. На этом все минусы кончаются и начинаются плюсы, а плюсов там полно.

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

Получаем административный доступ к домену

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

Нас интересует строка admin-contact, просто переходим по ней. В других доменных зонах whois отличается радикально, но в любом случае там будут фигурировать слова связанные с регистратором. Например у домена в зоне com сразу дается ссылка на регистратора (параметр Registrar URL). Если не можете разобраться со своим доменом, то пишите мне в комментарии или на почту, попробую помочь.

Ссылка из whois привела меня на страницу с формой.

То, что мне нужно, находится в правом верхнем углу — ссылка на страницу авторизации.

Поскольку я не знаю ни пароля, номера договора, мне нужно кликнуть ссылку «Напомнить номер договора и пароль».

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

Добавляем сайт в Cloudflare

На одной вкладке у вас должен быть открыт личный кабинет на сайте регистратора с нужным доменом, а во второй вкладке Cloudflare. Страница регистрации: https://dash.cloudflare.com/sign-up. Поскольку регистрация весьма тривиальный процесс, то я перейду сразу к описанию добавления сайта и его настройке.

Кликаем «+Add site» справа вверху и видим форму с одним полем, в поле вводим имя домена нашего сайта.

Жмем кнопку «Add Site». И если все нормально, то мы должны увидеть следующее:

Жмем «Next». После этого мы попадем на страницу с тарифами.

Кликаем тариф «FREE» и жмем «Confirm Plan».

Тут Жмем «Confirm». После этого мы попадем вот на такую страницу:

Скролим до конца и жмем кнопку «Continue». И вот тут начинается самое интересное. На следующем шаге мы видим нейм-сервера, которые нам необходимо скопировать.

Теперь нам необходимо перейти в личный кабинет на сайте регистратора и вместо текущих нейм-серверов указать нейм-сервера Cloudflare. В списке доменов кликаем «Изменить» в строке с нашим доменом под списком нейм-серверов.

После чего на следующей странице подчищаем поля и вставляем нейм-сервера Cloudflare/

Сохраняем изменения. и закрываем личный кабинет, нам он больше не нужен. Возвращаемся на страницу где добавляли домен и жмем «Continue». Все, осталось дождаться когда изменения вступят в силу и статус домена в Cloudflare сменится с «Not active»

На «Active»:

Об изменении статуса сервис уведомит письмом.

Включаем наш сайт

Переходим на страницу «DNS»/

И смотрим что там у нас творится. Если на странице мы увидим вот такую картину:

То это значит что к сайту проходят мимо сервером Cloudflare, для включения нам необходимо кликнуть на «облака», в итоге должно получится вот так:

Все, теперь запросы к нашему сайту идут через Cloudflare.

Запускаем HTTPS

После того, как статус нашего сайта сменится на «Active», можно приступать к дальнейшей настройке.

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

Тут справа в выпадающем списке выбираем «Flexible».

В этом разделе все. Переходим в раздел «Page Rules».

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

Для создания правила нам необходимо нажать кнопку «Create Page Rule».

Теперь переходим к нужному пункту.

Для домена без www

Создаем первое правило. В верхней строке пишем адрес сайта с http без www. Ниже в выпадающем списке выбираем «Always Use HTTPS».

Жмем кнопку «Save and Deploy».

Создаем второе правило. В верхнем поле пишем имя домена с www. В списке ниже выбираете пункт «Forwarding URL», рядом в списке выбираете пункт «301 — Permanent Redirect». Во второе поле пишите адрес сайта с https и с $1 на конце.

Жмем кнопку «Save and Deploy».

Для домена с www

Если вам необходимо чтобы сайт работал на домене с www, то поля необходимо заполнить как на скриншотах ниже.

Через несколько минут все наши настройки начнут работать.

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

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

В Cloudflare мы получаем два ключа, но этого не всегда достаточно для установки на сервер. Для установки на сервер потребуется создать ещё один файл. Во всяком случае на моем хостинге требуется файл .crt или .ca_bundle. Файл .crt можно создать с помощью командной строки и OpenSSL. Сам по себе процесс создания довольно прост и состоит из двух команд. Но перед созданием надо получить ключи от Cloudflare.

Переходим на вкладку «Crypto».

Ищем секцию «Origin Certificates» и жмем кнопку «Create Certificate».

В появившемся окне ничего не меняем и жмем «Next» и видим вот такое окно:

В принципе инструкция видна на скриншоте. Для тех, кто не понял, содержимое поля «Origin Certificate» в файл с именем site.ru.pem, а содержимое «Private key» в файл с именем site.ru.key. Сохранили? Жмем «OK».

Теперь мы можем перейти к созданию нужного нам файла .crt. Все операции выполняются в системе Ubuntu Linux. Для этого наши файлы .key и .pem закидываем в домашнюю директорию, открываем терминал и выполняем две команды:

openssl req -new -key site.ru.key -out site.ru.csr

Естественно вместо site.ru.key подставляем имя своего файла. На вопрос «Common Name (e.g. server FQDN or YOUR name)» пишем имя домена сайта без www, на все остальное отвечаем релевантно или пропускаем, если нечего написать. После этого выполним вторую команду:

openssl x509 -req -days 365 -in site.ru.csr -signkey site.ru.key -out site.ru.crt

После этого у нас появится файл .crt, теперь необходимо загрузить все это дело на сервер. Я покажу это на примере моего хостера SpaceWeb. В разделе SSL я выбираю «Установка сертификата» и попадаю на страницу загрузки файлов:

В первом поле выбираю файл .crt, который создал с помощью команд, а во втором поле выбираю файл .key, полученный от Cloudflare, после чего жму кнопку «Установить». Все готово. После этого останется в разделе «Crypto»сменить Flexible на Full. Теперь Cloudflare будет обращаться к нашему сайту по HTTPS.

Устранение бесконечных редиректов на WordPress

Переходим в раздел «Плагины» в админке нашего сайта, кликаем «Добавить новый» и в справа в строку поиска вставляем «CloudFlare Flexible SSL», само собой без кавычек.

Дожидаемся установки и потом жмем кнопку «Активировать», которая появится на месте кнопки «Установить». Вот и все, сайт готов к переходу на HTTPS, осталось дождаться когда обновятся DNS-сервера и заработают настройки Cloudflare.

Результаты работы Cloudflare

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

 

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

Напоследок

Первое время сайт будет работать мимо Cloudflare и предпринимать какие-либо действия по переходу на HTTPS на стороне сайта нецелесообразно, да и в принципе бессмысленно. Пока ждете обновления DNS можете проверить свой сайт с помощью валидатора HTML, качественный HTML без ошибок тоже важный фактор. Дождитесь когда сайт начнет работать через HTTPS, это будет понятно когда вы увидите на своем сайте просто текст без оформления. В этот момент быстро идем на Cloudflare, заходим в раздел «Page Rules» и выключаем наши правила кликнув переключатели:

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

Пожалуйста, оцените статью

Полная фигняУзнал немного новогоНормальная статьяХорошая статьяСупер! (Пока оценок нет)
Загрузка...

7 thoughts on “Бесплатный SSL-сертификат для ленивых «чайников»

  1. Здравствуйте, дошла до этого пункта и все… ибо чайник самый настоящий: «Теперь мы можем перейти к созданию нужного нам файла .crt. Для этого наши файлы .key и .pem закидываем в домашнюю директорию и выполняем две команды…»
    где эта домашняя директория??? и как мы команды выполняем? можно прямо для вот совсем чайников?

    1. Здравствуйте, Екатерина! Видимо я не уточнил что данные команды необходимо выполнять в UNIX-системах, например Ubuntu Linux. В этих же системах есть понятие «Домашняя папка», которая имеет название соответствующее имени пользователя. Если хотите, то я могу помочь, это 3 секунды делов.

    1. В таком случае в ответ на уведомление об ответе на комментарий, отправьте мне файлы .key и .pem, адрес сайта и город, в котором находитесь. Я Вам сгенерирую .crt

      1. Хорошо, можно в субботу? А то я с перепугу все назад вернула :))) и пришлите ваш email, пожалуйста

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

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

Подпишитесь на рассылку и получайте новые статьи на почту