Как получить бесплатный ssl-сертификат: пошаговая инструкция
Содержание:
- Шаг 2. Получаем SSL-сертификат
- Важные технические детали при работе с бесплатным HTTPS
- Подготовка сайта для работы по протоколу HTTPS.
- Зачем вообще SSL?
- Что такое SSL-сертификат
- Настройка для работы по протоколу HTTPS.
- Шаг 6. Настраиваем автоматическое обновление
- Установка SSL сертификата на хостинг
- Получить бесплатно SSL сертификат от Let’s Encrypt
- Виды SSL сертификатов
- Недостатки использования.
- Как получить SSL-сертификат
- Редирект с http на https
- Где получить бесплатный сертификат?
- Заказ SSL сертификата.
- Установка бесплатного сертификата на хостинг
Шаг 2. Получаем SSL-сертификат
Certbot предоставляет несколько способов получения SSL-сертификатов при помощи разных плагинов. В отличие от плагина для Apache, который описан в другом руководстве, большинство плагинов помогут вам только получить сертификат, который придётся настроить на вашем сервере вручную. Плагины, которые позволяют только получать сертификаты и не устанавливают их, называются «аутентификаторами», так как они используются для подтверждения подлинности сервера, которому сертификат выдаётся.
Давайте разберёмся, как использовать плагин Webroot для получения SSL-сертификата.
Использование плагина Webroot
Алгоритм работы Webroot включает в себя создание специального файла в директории . Она размещается в корневом каталоге веб-сервера (document root) и может быть открыта сервисом Let’s Encrypt для проверки. В зависимости от ваших настроек, вам может понадобиться явно разрешить доступ к папке .
Если вы ещё не установили Nginx, сделайте это, следуя руководству по установке Nginx на Ubuntu 16.04.
Чтобы убедиться в том, что папка доступна сервису Let’s Encrypt, внесем небольшие изменения в конфигурацию Nginx. По умолчанию файл конфигурации находится в папке . Мы будем использовать редактор Nano для внесения изменений:
Внутри блока добавьте такой блок :
Вам также стоит посмотреть, где расположен корневой каталог веб-сервера (document root), так как этот путь необходим при работе с Webroot. Если вы используете стандартный файл конфигурации, она будет расположена в .
Сохраните и закройте файл.
Проверьте вашу конфигурацию на синтаксические ошибки:
Если ошибок нет, перезапустите Nginx, используя эту команду:
Теперь, когда мы знаем , можно выполнить запрос на получение SSL-сертификата. При помощи ключа указываются доменные имена. Если вы хотите использовать единый сертификат для нескольких доменных имен (например, и ), не забудьте добавить их все. Также убедитесь, что вы заменили значения и доменные имена на соответствующие вашим:
Если это первый запуск Certbot, вам будет предложено ввести адрес электронной почты и подтвердить согласие с правилами использования сервиса. После этого вы увидите сообщение об успешном завершении и путь, куда были сохранены ваши сертификаты:
Обратите внимание, что путь к сертификату и дата истечения срока его использования указаны в начале сообщения
Файлы сертификата
После получения сертификата у вас должны появиться следующие файлы в PEM-кодировке:
- cert.pem — сертификат вашего доменного имени;
- chain.pem — Let’s Encrypt;
- fullchain.pem — объединённые и ;
- privkey.pem — приватный (секретный) ключ вашего сертификата.
Важно запомнить расположение этих файлов, так как они будут использоваться в конфигурации вашего сервера. Сами файлы расположены в папке
Однако Certbot создает симлинки на наиболее актуальные файлы сертификата в папке . Так как символьные ссылки указывают на наиболее актуальные файлы сертификата, именно этот путь лучше использовать при обращении к ним.
Вы можете проверить существование файлов, используя такую команду (подставьте ваше доменное имя):
Результатом выполнения команды должны быть указанные выше файлы сертификата. Теперь вы можете настроить ваш сервер так, чтобы использовался в качестве файла сертификата, а в качестве ключа сертификата.
Генерация ключа по алгоритму Диффи-Хеллмана
Для повышения безопасности вам необходимо сгенерировать ключ по алгоритму Диффи-Хеллмана. Для генерации ключа длиной 2048 бит используйте такую команду:
Процесс может занять несколько минут.
Важные технические детали при работе с бесплатным HTTPS
Посмотреть доступность бесплатного HTTPS можно в списке веб-сайтов в личном кабинете на странице «полный список функций».
Если HTTPS доступен (удалось получить для вас бесплатный SSL и наш веб-север поддерживает его работу), рядом с сайтом
будет отображен соответствующий знак +HTTPS!.
Мы выписываем бесплатный SSL для сайта автоматически при появлении возможности проверить домен (он должен работать),
примерно в течение суток.
- Учитывая негарантированный характер услуги, мы рекомендуем не делать безусловной
переадресации с HTTP на HTTPS для всего сайта. В случае проблем с бесплатным HTTPS сайт перестанет работать.
Это очень маловероятно, но это к сожалению возможно.
* когда мы убедимся в том, что бесплатный HTTPS от LetsEncrypt будет работать всегда, мы обновим совет. -
Для того, чтобы ваши посетители и поисковые системы узнали про HTTPS, мы сделали
специальную страницу в личном кабинете, которая позволяет настроить переадресацию на HTTPS. Эта переадресация будет
работать только в том случае, если мы знаем, что HTTPS для вашего сайта работает. Также мы в этом случае мы сформируем
подходящий HSTS заголовок.
Если по каким-то причинам бесплатный HTTPS для вашего сайта работать перестанет, мы сами уберем переадресацию.
* когда мы убедимся в том, что бесплатный HTTPS от LetsEncrypt будет работать всегда, мы обновим совет. -
Если у вас есть опасения, что поддержка HTTPS «без гарантии» может помешать работе вашего ресурса,
включать переадресацию на HTTPS для всех посетителей сайта не следует! Это не мешает опытным пользователям и администраторам
сайта пользоваться HTTPS, если это необходимо. -
Убедитесь в том, что ваш сайт хорошо работает по протоколу HTTPS. Для этого лучше использовать
только относительные ссылки. Если необходимо формировать абсолютные ссылки (необходимо очень редко, но случаи такие есть),
анализируйте текущий протокол (см. ниже). -
Проверить текущий протокол в скриптах вашего сайта можно с помощью серверных переменных HTTPS (будет on)
и HTTP_X_FORWARDED_PROTO (будет https). Это стандартные переменные, если вы используете какой-то готовый портал типа Joomla,
Wordpress или 1С-Битрикс, определение протокола для внутренних нужд будет происходить корректно.
Для серверов, отличных от Apache LAMP — сам HTTP заголовок с индикацией называется X-Forwarded-Proto. - Для получения бесплатного сертификата производится проверка принадлежности ресурса с помощью процедуры от
LetsEncrypt. Процедура имеет определенные технические требования, которые к тому же иногда меняются, а также содержит в себе известные
ошибки и/или особенности работы. Мы постоянно следим за ситуацией и адаптируем нашу систему под эти требования и нюансы, но есть случаи, которые
часто ставят работу бесплатного сертификата под угрозу.
Если ваш ресурс использует сложные сетевые технологии в работе, такие как проксирование (CloudFlare, защита от DDoS, объединение сайтов
на виртуальных адресах, и т.д.), или безусловные редиректы без оценки ситуации, или какие-то жесткие блокировки «непонятных запросов»,
которые мы не сможем обойти, проверка может не проходить и сертификат выписываться или обновляться не будет. В этом случае обратитесь в поддержку
за советами.
Подготовка сайта для работы по протоколу HTTPS.
- Смена ссылок с абсолютных на относительные – Если на страницах web-сайта используются ссылки с указанием протокола и домена (например http://joomlaissimple.ru/bonus.html ), то такие ссылки нужно заменить убрав тип протокола http: и название домена //joomlaissimple.ru в итоге получится ссылка в виде /bonus.html ;
- Исправление ссылок медиа-контента – проверьте по какому протоколу запрашивается медиа-контент и при необходимости измените протокол на HTTPS. Как правило все популярные сервисы YouTube, виджеты VK или Facebook, push-уведомлений и другие предоставляющие возможность внедрения своего контента, уже давно работают по протоколу HTTPS;
- Исправление подключения внешних скриптов – внимательно проверьте ссылки и исправьте их на относительные.
Зачем вообще SSL?
1. Лучше выглядит в браузере
Браузеры, с недавних пор, очень не любят сайты без SSL. И они будут пытаться помешать вашим посетителям регистрироваться и оплачивать покупки.
Вот так выглядит сайт без SSL (обычная страница) в современных браузерах:
Chrome (Хром) | Firefox | Яндекс Браузер |
Не так плохо, но веселье начинается если вы начнете вводить пароль или данные банковской карты. Будет вот так:
Chrome (Хром) | Firefox | Яндекс Браузер |
Как думаете, отпугнет ли это часть ваших посетителей? Конечно да. И это еще не все, Firefox, когда ваш посетитель будет вводить свои данные, покажет ему вот такое окошко:
С SSL сертификатом же все выглядит намного лучше:
Chrome (Хром) | Firefox | Яндекс Браузер |
2. Положительно сказывается (или будет) на позициях в поисковых системах
В Google сайты с SSL начали ранжироваться выше с 2014 года, но на очень ограниченном числе запросов. Сейчас это влияет все больше и больше.
Насчет Яндекса я не нашел информации по этому поводу, но, скорее всего, они тоже это учитывают как один из второстепенных параметров.
Что такое SSL-сертификат
SSL-сертификат — разрешение на использование защищенного протокола https. Его можно получить у независимых организаций, которые специализируются на сертификации сайтов. Обычно стоимость такой работы может варьироваться от 10-15 долларов до нескольких тысяч. Более подробно о SSL можно прочитать на википедии, я же ограничусь краткой характеристикой.
SSL или Secure Sockets Layer позволяет использовать шифрование при обмене данными между компьютером пользователя и сервером. Говоря простым языком: доступ к информации есть только у участников обмена — компьютера и сайта. Третьи лица не смогут получить данные как бы они не пытались.
Защищенное соединение рекомендовано к использованию поисковыми системами и антивирусными приложениями. Например, Аваст и Касперский могут уведомлять пользователей о том, что сайт, на который они переходят, не использует защищенное соединение. Точно о том же уведомляют некоторые браузеры, такие как Яндекс.Браузер и Google Chrome.
Сейчас поисковые системы лояльнее относятся к сайтам, на которых используется SSL. Это спорное утверждение, которое опровергается самими поисковиками. Но некоторые вебмастера замечают, что трафик при переходе на https многократно возрастает. От себя дополню, что на посещаемость могут влиять поведенческие факторы. Пользователи больше доверяют сайтам с защищенным шифрованием.
Примечание:
Касаемо влияния на SEO: опровергают эту информацию только Яндекс. Гугл прямо заявил, что наличие защищенного соединения положительно влияет на ранжирование.
Почему https лучше, чем http
Из предыдущего смыслового блока вы могли понять почему. Однако, я думаю, что надо подвести кое-какие итоги. Причины, почему https лучше, чем http:
- https лучше ранжируется в Гугле
- Данные ваших пользователей в безопасности
- Вам больше доверяют, причем не только сами пользователи, но и антивирусное ПО, браузеры
- Улучшенные поведенческие факторы и кликабельность в поисковой выдаче
- Возможность установить SSL-сертификат совершенно бесплатно
Как видите, причин не так много. Но они очень весомые. Вы же хотите, чтобы в том же Гугле ваш сайт получал более высокие позиции? Трафик на дороге не валяется, поэтому лучше, все-таки, установить сертификат. Лишним уж точно не будет. Тем более это можно сделать бесплатно.
Настройка для работы по протоколу HTTPS.
Вместо имени моего web-сайта joomlaissimple.ru везде впишите имя своего интернет ресурса.
- Указание директивы Host в файле robots.txt – что бы указать поисковым системам главное зеркало сайта, пропишите в файле robots.txt директиву Host.
Host: https://joomlaissimple.ru
- Укажите страницу карты web-сайта в директиве Sitemap — Если вы используете описание структуры сайта с помощью файла sitemap, укажите путь к файлу в качестве параметра директивы sitemap. Если файлов несколько, укажите все.
itemap: https://joomlaissimple.ru/index.php?option=com_xmap&view=xml&tmpl=component&id=1
- 301 редирект с HTTP на HTTPS – в файл .htaccess обавьте код:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Если этот код не сработает, то обратитесь в службу поддержки своего хостинга за консультацией.
-
Настройка SSL в административной панели Joomla – Войдите в административную панель Joomla. В разделе Система—>Общие настройки—>Настройки сервера—>Включить SSL установите в состояние «Весь сайт».
-
Яндекс Вебмастер переезд сайта – в панели Яндекс Вебмастер в разделе «Переезд сайта» укажите что сайт переезжает на новый протокол HTTPS;
-
Google Search Console – добавьте свой интернет ресурс указав протокол HTTPS;
-
Дополнительные настройки в панели для вебмастеров– сделайте остальные настройки в панели вебмастеров. Настройка региона, sitemap и т.д. где была указана информация по web-сайту.
После завершения настроек, остается только ждать и исправлять ошибки которые обнаружатся и будут сообщены в панели вебмастера.
Проверить установленный SSL сертификат на Вашем web-ресурсе можно при поможи сервиса проверки сертификата Qualys SSL Labs
Проверка установленного SSL сертификата
Шаг 6. Настраиваем автоматическое обновление
Сертификаты от Let’s Encrypt действуют только в течение 90 дней. Это побуждает пользователей к автоматизации процесса обновления. Нам понадобится создать регулярно запускающуюся команду для проверки и автоматического обновления сертификатов, срок которых истекает.
Для запуска проверки ежедневных обновлений мы будем использовать Cron — стандартный системный сервис для запуска повторяющихся задач. Задачи Cron указываются в файле под названием :
Вставьте следующую строчку в конец файла, затем сохраните и закройте его:
Часть строчки означает «запускай следующую команду в 3:15 ночи ежедневно». Вы можете выбрать любое время.
Команда для Certbot проверит все сертификаты, установленные в системе, и обновит каждый, срок использования которого истекает менее, чем через 30 дней. Ключ говорит Certbot’у ничего не выводить и не ждать ввода от пользователя. перезагрузит Nginx, чтобы он использовал новые файлы сертификата, но только в случае, если произошло обновление.
Cron будет запускать эту команду каждый день. Все установленные сертификаты будут автоматически обновлены и подгружены, когда останется меньше 30 дней до истечения срока их действия.
Установка SSL сертификата на хостинг
Итак, создание SSL сертификата, я надеюсь, прошло у вас успешно. Теперь всё, что осталось сделать для успешной передачи данных по HTTPS, — это подключить SSL сертификат к сайту, для которого он оформлялся.
В качестве наглядного примера я решил продемонстрировать подключение SSL сертификата к своему тестовому сайту, для которого с этой целью был специально зарегистрирован поддомен. О том, как создать поддомен сайта в ISPManager на примере TheHost вы можете прочитать в статье по указанной ссылке.
Итак, для подключения SSL сертификата к сайту в панели управления хостингом ISPManager открываем пункт меню «WWW домены», выбираем необходимый и нажимаем на кнопку «Изменить», которая становится доступной в самом верху страницы.
После этого на экране появляется следующее диалоговое окно:
Чтобы установить SSL сертификат на выбранный домен, нам нужно поставить галочку в поле «SSL» и выбрать из выпадающего списка имя нужного документа.
Вот и всё. SSL сертификат на сайт установлен. Сами могли убедиться, насколько это просто и быстро благодаря TheHost и ISPManager, в частности.
Да, пусть он выглядит неказисто, но со своими задачами справляется на отлично
Теперь нам останется только произвести настройки движка сайта, чтобы он корректно работал по новому HTTPS протоколу. Среди них будут редиректы с HTTP на HTTPS, настройка зеркал, правки карты сайта и robots.txt, а также много другое.
Но мы поговорим об этом в следующих статьях, т.к. каждая платформа требует индивидуального подхода.
В завершение обзора настроек сайта в ISPManager, связанных с SSL, хочу обратить ваше внимание на поле «Только SSL» в диалоговом окне, изображённом на скриншоте выше. С помощью него возможно сделать редиректы с HTTP на HTTPS для URL сайта на уровне веб сервера Nginx
Установив галочку в данном поле, в файл конфигурации веб сервера Nginx на хостинге добавится следующий код:
if ($ssl_protocol = "") { rewrite ^ https://$server_name$request_uri? permanent; }
Можете взять данный способ организации редиректов с HTTP на HTTPS себе на заметку, особенно, если вы не пользуетесь услугами shared хостингов и панелями управления хостингом, в частности, а редирект настроить нужно.
Преимущество данного способа перенаправления трафика над редиректом в коде сайта заключается в том, что он происходит быстрее. В количественном выражении эти изменения не существенны, но при больших размерах проекта они станут заметны.
Получить бесплатно SSL сертификат от Let’s Encrypt
Следующая организация, занимающаяся выдачей бесплатных сертификатов, называется Let’s Encrypt.
Возникла данная организация вследствие сотрудничества таких известных компаний Chrome, Mozilla и некоторых других. Основная затея этой организации заключается в том, что бы выдавать качественные SSL-сертификаты бесплатно.
В принципе, на сегодняшний день это довольно таки не плохой вариант получения бесплатного SSL-сертификата. Потому, как он практически не уступает платным сертификатам за исключением некоторых недостатков.
Самый основной такой недостаток заключается в том, что сертификат выдается сроком до 90 дней. То есть, по истечении трех месяцев вам нужно будет этот сертификат продлять. Для продления у вас есть три способа:
- 1.Продлять его вручную. Минус этого способа заключается в том, что вы можете просто забыть или пропустить, или по каким-то техническим причинам у вас не получится продлить данный сертификат и в итоге посетители, попадая на ваш сайт, будут получать уведомления о том, что сайт имеет не подтвержденный сертификат и т.д.
- 2.Автоматическое продление сертификата с использованием крон. Кроны представляют собой так называемые планировщики, которые есть в операционных системах на базе Linux и суть их использования заключается в том, что администратор сервера создает такой крон, который включает в себя определенный скрипт, благодаря которому осуществляется замена старого сертификата новым. Основной минус данного способа в том, что он несет в себе определенные технические сложности, так как далеко не каждый человек сможет себе создать такой крон у себя на сервере. Поэтому этот способ подойдет далеко не для всех.
- 3.Принять автоматические настройки центра сертификации Let’s Encrypt. В этом случае сертификат должен будет продляться автоматически. Однако, приняв автоматические настройки Let’s Encrypt вы фактически даете им право вносить изменения в конфигурацию вашего сервера и программного обеспечения в целом. В принципе, из всех трех вариантов этот не такой уж и плохой, однако имеет определённую негативную строну.
Вторым недостатком сертификата выданного Let’s Encrypt является то, что они не дают ни каких гарантий. То есть, если вы, к примеру, получаете платный сертификат от каких-то известных компаний, таких как Comodo, GeoTrust и т.д., то они предоставляют определенные гарантии на то, что их шифрование является безопасным. И в случае если передаваемая по их сертификату информация будет перехвачена и расшифрована, и пользователь понесет впоследствии убытки, то данная компания может выдать своего рода страховку в качестве компенсации за понесенные убытки.
Let’s Encrypt является не коммерческой организацией, поэтому предоставлять такого рода гарантии она не может, и в данном случае все убытки будут нести сами пользователи.
Так же, обращаю ваше внимание на то, что сертификаты Let’s Encrypt на сегодняшний день находятся в состоянии beta-тестирования. Поэтому возможны возникновения определенных проблем, в особенности со старыми версиями браузеров
Виды SSL сертификатов
Сертификатов SSL для сайтов существует несколько видов.
Cамоподписной сертификат
Самый простой и бесплатный — это самоподписной сертификат (self-signed), который можно сгенерировать прямо на веб-сервере. Минус этого сертификата в том, что на такой сертификат все браузеры будут выдавать предупреждение, что сайт не проверен.
Для служебных целей и для внутреннего использования такие сертификаты подходят, а вот для публичных сайтов, а тем более для сайтов, которые продают услуги, такие сертификаты нежелательны. Посудите сами, хотели бы вы, чтобы ваш клиент при заказе услуги увидел вот такую ошибку на весь экран? Как показывает практика, большинство посетителей такая страничка отпугивает и отбивает желание продолжать заказ дальше.
Сертификаты, которые подтверждают только доменное имя (Domain Validation — DV)
Это самые простые сертификаты, это ваш выбор если сертификат вам нужен срочно, так как выпускаются они автоматически и моментально. При проверке такого сертификата отсылается письмо со специальной ссылкой, по которой нужно кликнуть, чтобы подтвердить выпуск сертификата.
Сертификаты, которые подтверждают домен и организацию (Organization Validation — OV)
В таком сертификате уже будет указано название организации. Такой сертификат частное лицо получить не может. Срок выдачи таких сертификатов как правило от 3 до 10 рабочих дней, зависит от центра сертификации.
Сертификаты, с расширенной проверкой (Extendet Validation — EV)
Это самые дорогие сертификаты и получить их сложнее всего. В таких сертификатах есть так называемый «green bar» — то есть при входе не сайт, где установлен такой сертификат в адресной строке браузера посетителя появится зеленая строка, в которой будет указано название организации, получившей сертификат. Пожалуй это самый заветный сертификат для владельца сайта.
Недостатки использования.
- Перевод сайта на HTTPS– что бы перевести сайт на работу по протоколу HTTPS потребуется тщательная проверка и возможно корректировка страниц сайта. Так же потребуется осуществить «переезд» сайта в поисковых системах, что может повлечь, кратковременное снижение и «выпадение» из поисковой выдачи. Ведь для поисковых систем сайт HTTP и HTTPS это два совершенно разных сайта. Но в течении некоторого времени, а точнее после переиндексации сайта, страницы в поиске будут восстановлены.
- Вам необходимо купить SSL-сертификат– если вы являетесь владельцем сайта на котором проводятся финансовые операции, интернет торговля т.е. требуется подтверждение бизнес-уровня;
Как получить SSL-сертификат
Итак, есть два варианта: платный и бесплатный. Рассмотрим оба:
- Платный: вы покупаете сертификат в центре сертификации. Стоимость может очень сильно различаться. Однако здесь, в отличие от бесплатного варианта, есть возможность покупки более продвинутых версий.
- Бесплатный: SSL-сертификат, который выдается центром сертификации Let`s Encrypt или посредниками.
Статья посвящена бесплатному SSL-сертификату, поэтому далее я в подробностях расскажу как и где можно получить бесплатный сертификат с защищенным шифрованием.
Теперь нас перекинет на страницу с выбором способа добавления. Всего их три штуки:
Вы можете:
- Провести сертификацию в автоматическом режиме. Для этого нужны данные от FTP-аккаута
- Последовать инструкциям в мануале, и загрузить на хостинг проверочные файлы
- Последовать инструкциям в другом мануале, и добавить DNS-записи к вашему домену
Что именно выбрать — решайте сами. Обычно я использовал третий способ, то есть создание записей DNS. Сейчас я думаю, что лучшим вариантом была автоматическая верификация с использованием FTP. А самый лучший и быстрый вариант — через хостинг. Об этом и пойдет речь далее.
Получить SSL в Таймвеб
Если вы используете виртуальный хостинг от Таймвеб, то получение бесплатного сертификата для вас вообще не проблема. Не забудьте добавить домен, перед тем как выполнять все дальнейшие инструкции.
Итак, находим в боковом меню «Дополнительные услуги», и переходим на нужную страницу. Она будет выглядеть так:
Видим «SSL-сертификаты», радостно кликаем на эту кнопку:
Вылетает окошко, открываем меню «Сертификат», выбираем «SSL Let`s Encrypt» (0 рублей). Точно таким же способом выбираем домен, нажимаем «Заказать». Сертификат будет выпущен и установлен в течение 10-15 минут. Иногда больше, но в случае чего вы можете обратиться в техническую поддержку.
Получить SSL в Beget
Здесь все делается почти также. Идем в раздел «Домены», кликаем на «Управление SSL-сертификатами», которое находится в конце полоски нужного домена:
Теперь нужно выбрать вкладку «Бесплатный SSL сертификат», после чего клацнуть на кнопку «Установить»:
Все! Сертификат установлен.
Получить SSL в других хостингах
Я рассмотрел два наиболее популярных сервиса. Не расстраивайтесь, если ваш хостинг не вошел в эту статью. Принцип действия там точно такой же. Вы должны найти аналогичные разделы, выбрать «Бесплатный SSL», и кликнуть на кнопку «Установить», «Заказать», или аналогичную. Если возникают какие-то проблемы, то можно обратиться в техническую поддержку вашего хостинг-провайдера. Скорее всего они будут рады вам помочь.
Получить SSL-сертификат через Cloudflare
Вы можете подключить свой сайт к платформе Cloudflare. Там также положен бесплатный SSL-сертификат. То есть ваш сайт будет доступен по защищенному соединению https. Также вы сможете рассчитывать на защиту от DDos-атак, возможность подключения кэширования и CDN.
Редирект с http на https
После установки вам захочется, чтобы все пользователи работали по защищенному соединению. Да и поисковые системы должны произвести склейку, иначе будет какая-то неразбериха: один и тот же сайт с http и https будет считаться как два разных. Нам нужно, чтобы это не произошло. Поэтому мы должны настроить редиректы.
Обычно это делается с помощью инструментов CMS или файла htaccess. В WordPress, например, можно настроить автоматические редиректы с незащищенного протокола на защищенный. Но здесь же отмечу, что далеко не все системы управления контентом могут поддерживать такую функцию. По этой причине редирект можно реализовать с помощью файла htaccess, который есть почти на любом сайте.
Просто добавляем в начало файла этот кусок кода и вуаля – ваш сайт имеет 301-й редирект с http на https.
Теперь мы можем проверить наличие переадресации, просто зайдя на сайт без прописывания протокола (или с http протоколом). Если мы все сделали правильно, то нас перекинет на https://сайт.ру.
Обращаю ваше внимание, что после установки https-соединения как основного, ваш ресурс может потерпеть некоторые временные проблемы с индексацией. Происходить это будет на протяжении нескольких месяцев
Чтобы минимизировать ущерб и ускорить склейку двух версий сайта, вы должны выполнить ряд инструкций.
Например, добавить в файл robots.txt строчку Host с указанием главного зеркала вашего веб-ресурса. Там же нужно прописать и https-протокол, чтобы поисковые системы считали этот вариант приоритетным.
Уведомить поисковики об изменении протокола можно и с помощью специальных инструментов. В Яндекс.Вебмастере есть соответствующий раздел под названием “Переезд сайта”. Укажите в нем, что ваш проект “переехал” на использование защищенного соединения. В кратчайшие сроки Яндекс постарается учесть эту информацию и обновить поисковую базу в соответствии с новыми данными.
Где получить бесплатный сертификат?
1. Let’s Encrypt
Это серьезная некомерческая организация, которая предоставляет бесплатные сертификаты. Возможно, вы даже слышали о компаниях, которые спонсируют ее на более $300,000 в год каждая: Facebook, Mozilla, Cisco и Chrome (Google).
На https://clickget.ru, кстати, используется их сертифкат. Можете зайти и посмотреть если хотите.
Единственная проблема, их сайт работает не так, как вы думаете. На нем нельзя получить сертификат. Вот как это сделать если у вас:
1. Виртуальный хостинг
Если у вас виртуальный хостинг, то, возможно, он уже поддерживает выпуск сертификатов через Let’s Encrypt. Лично я знаю что Timeweb, Reg.ru и многие другие это уже поддерживают.
Покажу на примере Таймвеба (которым мы пользуемся), как выглядит выпуск сертификата. Заходите в “Дополнительные услуги”, потом в “SSL сертификаты” и в поле “Сертификат” выбираете SSL Let’s Encrypt:
Все, сертификат будет выпущен в течении пары минут и будет автоматически продлеваться каждые 3 месяца. То есть это сделать проще простого.
Если ваш хостинг не поддерживает Let’s Encrypt, спросите их, возможно, скоро они добавят эту возможность.
2. Свой сервер
Если у вас свой сервер(облачный, VPS, Dedicated и т.п.), то воспользуйтесь сайтом certbot.eff.org. Выбираете там операционную систему и сервер (Apache/Nginx) и получаете пошаговую инструкцию, как все настроить. Правда сможет сделать это только человек, который в этом разбирается.
По идее, можно еще воспользоваться сайтом sslforfree.com, но имейте ввиду, что Let’s Encrypt выпускает сертификаты только на 3 месяца. И каждые 3 месяца нужно его обновлять. Поэтому устанавливать его руками проблематично. Воспользовавшись же способами выше, сертификат будет продляться автоматически, без вашего участия.
2. CloudFlare
Это бесплатный CDN провайдер, используя который, вы получаете кучу полезного, включая бесплатные SSL сертификаты.
Минимальные требования к браузерам и ОС для работы сертификата можно найти внизу этой страницы (Windows Vista+, Firefox 2+, Android 4.0+ и т.п.)
Если вкратце, вам нужно зайти туда, где покупали домены, и перенастроить DNS сервера на CloudFlare, после этого ваш сайт станет доступен через HTTPS. Если вы в этом не разбираетесь, вам стоит попросить сделать это другого человека. Процедура не должна занять более 30 минут и стоить будет недорого.
1. Сначала регистрируетесь здесь
2. Вводите ваши домены через запятую в поле:
Cloudflare автоматически просканирует и добавит DNS записи
3. После этого добавляете те, что не добавились автоматически(обязательно сравните с теми что у вас вбиты, для этого нужно зайти в DNS записи вашего домена), и жмете далее в самом низу.
4. На следующем шаге выбираете бесплатный тариф. После этого вы получите имена 2х серверов. Теперь вам нужно зайти туда, где вы покупали домен и сменить (делегировать) ваши неймсервера (nameserver или DNS сервер) на новые:
Если все DNS записи вы перенесли корректно, то ваши посетители никаких изменений не заменят(то есть сайт будет работать без перебоев).
5. Когда все перенесется, зайдите в настройки вашего домена на вкладку “Crypto” и там где SSL выберите “Flexible”. Все, теперь SSL соединение с вашим сайтом будет работать
Другие варианты:
- Еще бесплатные сертификаты выдает StartCom. Я пользовался им пока, в конце 2016 Mozilla, Apple и Google решили перестать доверять этим сертификатам в новых версиях браузеров. И, пока что, StartCom это не исправил.
На будущее:
- Перед тем как ставить переадресацию с HTTP на HTTPS проверьте все ли работает (переадресацию обычно можно настроить в панеле хостинга)
- Нужно заменить все пути к картинкам и т.п. в коде сайта с http:// на // иначе соединение не будет считаться защищенным. Для WordPress можно воспользоваться плагином типа этого.
- При переадресации с HTTP на HTTPS, используя CloudFlare, будьте аккуратны, плагин переадресации должен их поддерживать, иначе будет бесконечная переадресация. Для Вордпресса есть вот этот плагин. Дело в том, что запрос на ваш сайт идет через HTTP в любом случае, нужно читать данные, посылаемые CloudFlare, чтобы понять, открыт ли ваш сайт через HTTP или HTTPS у посетителя.
Вот и все. Даже если вы уже купили сертификат, надеюсь вы перейдете на бесплатный в следующем году
P.S. Если же ваш хостинг не поддерживает это, или, по каким-то причинам, вы хотите сертификат от известной компании, попробуйте этот сайт (там самые дешевые).
Заказ SSL сертификата.
Заказать сертификат можно непосредственно на вышеперечисленных сайтах и установить в ручную или через панель управления. Как установить сертификат в ручную хорошо описано в статье Ручная установка SSL сертификата . В большинстве случаев заказ сертификата можно сделать прямо из панели вашей хостинговой компании. Вот например, как выглядит форма заказа SSL сертификата у хостинговой компании beget.com
форма заказа SSL-сертификата у хостинговой компании beget.com
Для заказа бесплатного сертификата Let’s Encrypt через панель управления beget, достаточно нажать только одну кнопку и вся процедура заказа и установки сертификата будет сделана автоматически.
форма заказа бесплатного SSL-сертификата у хостинговой компании beget.co
Установка бесплатного сертификата на хостинг
Установка SSL-сертификата на сервер
В первую очередь распаковываем архив с сертификатом и видим, что он состоит из:
- certificate.crt (сертификат);
- private.key (приватный ключ);
- ca_bundle.crt (промежуточный сертификат).
Данный пункт необходим тем, кто не смог получить его у хостера и приобрел его не у своего провайдера. Для этого посещаем раздел «SSL», где выбираем пункт «Установить».
Вводим в соответствующие поля свой файл и завершаем установку.
Важно! Если не имеется навыка работы с интерфейсом хостинг компании (у некоторых провайдеров отсутствует возможность загружать сертификат самостоятельно в интерфейсе) рекомендуется загрузить архив с сертификатом на сервер и написать в поддержку с просьбой об установке. Важно! Срок действия сертификата 3 месяца, после чего его потребуется
обновиться, выполнив инструкцию еще раз
Важно! Срок действия сертификата 3 месяца, после чего его потребуется
обновиться, выполнив инструкцию еще раз. Важно! Если сертификат выдается на поддомен, то потребуется
подтвердить лишь основной домен (соответственно загрузить лишь 1 файл или
установить 1 TXT-запись)
Важно! Если сертификат выдается на поддомен, то потребуется
подтвердить лишь основной домен (соответственно загрузить лишь 1 файл или
установить 1 TXT-запись)
Через ISPmanager
Следует посетить раздел «WWW»-«SSL-сертификаты»,
после чего кликнуть на «Создать».
Выбираем пункт «Существующий».
Ставим данные из файлов в нужные поля и даем имя
сертификату.
Важно! Если не получается воспользоваться ни первым ни
вторым способом или данного раздела (SSL) нет в административной панели (как, например, в SprintHost), то Вы можете
загрузить сертификаты на свой сервер и создать тикет хостинг-провайдеру для
установки