Как поставить https на сайт

Как поставить https на сайт

В июле 2015 года я перевел свой сайт на безопасный протокол HTTPS. Данная инструкция поможет вам без труда проделать тоже самое. Тем более, что постоянно витают слухе об отказе популярными браузерами незащищенного HTTP, в связи с чем, предвидится массовый переход на HTTPS.

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

Как перевести сайт на HTTS

Пять простых шагов как перевести свой сайт на HTTPS

  1. Получение SSL сертификата
  2. Установка сертификата на сервер
  3. Настройка сайта, отказ от HTTP ссылок
  4. Настройка веб-сервера
  5. Информирование поисковых систем

Где взять SSL сертификат для сайта

Сразу стоит определиться к какой категории относитесь вы и ваш сайт. Если вы выступаете как частное (физическое) лицо, то вам доступен лишь один вид сертификата: DV (Domain Validation). Он самый простой, выпуск его занимает минимальное время. Необходимо лишь подтвердить права владения доменным именем. Если вы представляете юридическое лицо, то вам доступны все типы сертификатов. Выбирайте любой в зависимости от потребностей вашего сайта. Но готовьтесь к тому, что проверка займет длительное время, а сам сертификат может дорого стоить.
Ранее я писал, где взять сертификат бесплатно. Этот вариант отлично подходит блогерам и владельцам персональных сайтов. Как получить такой бесплатный сертификат хорошо описано на Хабре в статье-инструкции Получаем бесплатный SSL сертификат.

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

Перед приобретением Ssl сертификата следует выяснить возможность его использования у себя на хостинге. Если у вас виртуальный хостинг, то настроить использование HTTPS может только поставщик услуг хостинга. Заранее выясните у него такую возможность. Если у вас сервер, не важно виртуальный или выделенный, то сертификат SSL гарантированно можно установить или использовать.

Помните, что сертификат вы получаете на домен (доменное имя), а устанавливать его надо на сервер (веб-сервер).

Установка зависит от вебсервера. Apache и NGINX настраиваются по разному. Вот неплохая инструкция как все сделать своими руками Ручная установка SSL сертификата.
Но если вы на хостинге используете панель управления VestaCP, то все заметно упрощается. Эта панель позволяет установить сертификат для вашего домена прямо из веб-интерфейса.

Предполагаю, что подобная возможность есть и в других панелях управления.

Настройка сайта, отказ от HTTP ссылок

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

Вполне возможно, что обратившись к своему сайту в первый раз по HTTPS протоколу вы увидите такую картину:

Как видите замочек открыт, а это значит, что посетитель получает часть информации в незащищенном виде. Если щелкнуть мышкой по раскрытому замку, то можно увидеть примерно следующее:

Что нужно сделать, чтобы устранить проблему открытого замка HTTPS:

  • Исправить все внутренние ссылки на использование протокола HTTPS
  • Если используете картинки с внешних ресурсов, которые не работают по HTTPS, то скопируйте изображения себе на сайт
  • Отказаться от внешних сервисов и систем которые не работают по HTTPS
  • Убрать все плагины которые работают только по HTTP

Как исправить все ссылки на сайте

Для начала следует принять за правило использовать все ссылки без указания протокола. Это решение я подсмотрел в коде вызова скрипта Google.Adsense. Если раньше ваши ссылки выглядели так http://domainname.tld/page1.htm, то теперь они должны выглядеть так //domainname.tld/page1.htm. Ссылки такого рода будут работать и по HTTP и по HTTPS.
Если ваш сайт использует для хранения данных MySQL, а таких большинство. То проще всего сделать дамп базы. Скачать его себе на компьютер. Так как дамп базы данных MySQL представляет собой обыкновенный текстовый файл, то можно с помощью обычного текстового редактора произвести замену внутренних адресов на вариант описанный выше. После чего дамп базы данных нужно залить на сервер обратно.
Также можно поступить и с внешними ссылками. Но только не ставьте принудительно протокол HTTPS, так как нет никакой гарантии, что внешний ресурс его поддерживает.

Картинки с внешних ресурсов

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

Внешние сервисы которые не поддерживают HTTPS

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

Плагины работающие по HTTP

На моем сайте оказалось два плагина которые никак не хотели работать по безопасному протоколу HTTPS. Пришлось от них отказаться. Кроме того я проверил весь HTML код сайта на предмет загрузки скриптов и прочего с внешних ресурсов. Многие на автомате заработали по безопасному протоколу. Так же вычистил кучу мусора и неиспользуемого кода.

После проведения всех вышеописанных процедур сайт полноценно заработал по протоколу HTTPS, и замок безопасности оставался закрытым при посещении всех страниц.

Настройка веб-сервера на использование HTTPS

Для поисковых систем сайты доступные по разным протоколам http://domainname.tld и https://domainname.tld — это совершенно разные сайты. Поэтому необходимо поисковому роботу указать, кто тут главный. Для это в файле robots.txt необходимо написать название сайта с явным указанием протокола:

Затем необходимо настроить принудительную переадресацию всех запросов на протокол HTTPS. Чтобы пользователь который набрал http://domainname.tld все равно попал на безопасную версию сайта https://domainname.tld.
Если вы используете вебсервер Apache, то можно поступить следующим образом, добавьте в файл .htaccess нижеследующий код:

Читайте также:  Сильно тормозит айфон 6

Информирование поисковых систем об использовании протокола HTTPS

В панели для вебмастеров поисковых систем Яндекс и Google необходимо добавить и подтвердить новый сайт, указав версию https.

[pcenter][/pcenter]

Теперь у вас в списке сайтов будет две записи по сути об одном и том же сайте. Для Google дополнительных настроек больше делать не надо, достаточно присутствия 301 редиректа. А для Яндекса у сайта работающего по HTTP необходимо указать в качестве главного зеркала HTTPS версию сайта.

[pcenter][/pcenter]

Не забудьте для нового сайта указать файл Sitemap.xml.

Яндекс не гарантирует сохранение количества страниц сайта в поиске, его позиций или посещаемости в случае изменения главного зеркала.

На этом все настройки можно считать законченными. Теперь посетители общаются с вашим сайтом по защищенному протоколу. Поисковые системы Яндекс и Google со временем поменяют адрес вашего сайта в поисковой выдаче.

Благодарности

При написании этой инструкции были использованы следующие источники

Вчера решил, что хватит это терпеть и пора перевести свой сайт с http на https. По случаю решил описать весь процесс, как я его делаю. Честно говоря преследую этим еще одну цель — когда меня в очередной раз попросят помочь переехать на https, я просто дам ссылку на подробное руководство.

HTTP, HTTP/2, HTTPS, SSL — о чем речь?

Hypertext Transfer Protocol (HTTP) — это основном протокол связи, который используется на любом сайте для установки соединения.

HTTP/2 — более современный протокол, в котором добавлены увеличивающие производительность и безопасность.

HTTPS — расширение протокола HTTP, которое поддерживает шифрование.

Secure Sockets Layer (SSL) — криптографический протокол для безопасной связи.

Переход на https — зачем мне это?

Я бы выделил 4 причины:

  1. Забота о безопасности данных: сейчас по этой теме сходят все с ума (раньше все клали с пробором, но теперь…). Для сайтов работающих с деньгами и онлайн оплатой — это острая необходимость, т.к. шифруются все данные. Для простых информационных ресурсов — вас все равно заставят перейти на https, т.ч. выбора особо нет.
  2. Это фактор ранжирования: и Яндекс и Google открыто об этом говорили. Если раньше только Гугл заставлял переводить сайты на https, то сейчас за это взялось зеркало Рунета и с 24 января 2019 года в вебмастере уже многие увидели предупреждение:

Предупреждение в Яндекс Вебмастере

Т.е. это благотворно скажется на ваших позициях и трафике с поисковых систем (на самом деле нет, чаще вообще никак не скажется 🙂 )
Больше доверия со стороны пользователей. Когда посетитель видит в браузере метку:

Меня это не пугает и я все равно юзаю сервис 🙂

Это может его отпугнуть/насторожить, особенно если это человек не сильно понимающий сути происходящего.

  • Ради HTTP/2 и большей скорости, которая так же является фактором ранжирования. В среднем прирост по скорости достигает 20-30% практически за 20-30 минут работы.
  • Ну а теперь перейдем к пошаговому плану по переходу с http на защищенный протокол https.

    Шаг 1: Подготовка сайта

    Многих сложностей может не быть вообще, если изначально за сайтом следили и делали все чисто и без костылей.

    Бэкап

    Любое вмешательство в жизнь сайта (если это не простые действия с контентом или вы не самоуверенный программист) начинается с бэкапа, т.к. в случае появления проблем — вы быстро восстанавливаете данные и программист уходит все делать на своем серваке.

    Относительные ссылки

    Когда на сайте абсолютные ссылки вида http://romanus.ru/page-name — это может быть проблемой, т.к. их нужно:

    1. Либо заменить на относительные вида /page-name;
    2. Либо в абсолютных заменить протокол на https.

    Я бы выбирал 1 вариант, т.к. он более гибкий и пригодится не только в решении текущей задачи. Однако и там есть свои минусы, но это не тема данной статьи.

    Уверен, на любом сайте вы найдете волшебную таблетку (пример замены домена в статьях):

    Пример замены домена через SQL-запрос: кто-то его проверял?

    Почему люди везде это пишут — хз, видимо никто не проверял работоспособность т.к. этот вариант просто не работает. SQL запрос не может заменить домен в ячейке, содержащей целый текст, т.к. это просто замена в лоб (как в Excel). Т.е. вы не можете заменить ячейку, если она не равняется вашему тексту (читай, ячейка = текст и ничего более).

    Но у нас же в ячейках текст статей в html формате.

    Даю 2 рабочих вариант:

    1. Для понимающих (хотя им не нужно объяснять). Идем в PhpMyAdmin, экспортируем нашу базу данных (или конкретную таблицу, в которой нужно сделать изменения). Далее открываем редактором типа Sublime или Notepad++ и через замену все меняем. Далее импортируем исправленный вариант обратно в нашу базу данных.
    2. Чтобы не накосячить. Во многих CMS есть плагины, которые с помощью регулярок могут делать замены (да и без них). Например, для WordPress есть хороший плагин Search Regex — который быстро и без проблем поможет сделать замену в тех местах, в которых это нужно.

    Пример работы плагина Search Regex

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

    Адрес сайта

    В CMS нужно изменить адрес вашего сайта на корректный, в WordPress это делается так:

    Замена домена в админке WordPress

    Внешние скрипты

    Все внешние скрипты должны подключаться строго через https, т.к. в противном случае у вас будет смешанный протокол.
    Чтобы убедиться — смотрите страницы через режим исходного кода и проходитесь поиском или любой краулер аля Screaming Frog, Netpeak и т.д.

    Читайте также:  Фирма мидеа страна производитель отзывы

    Robots.txt и Sitemap.xml

    В robots.txt чаще всего не нужно никаких изменений вносить (раньше нужно было добавить директиву для Яндекса: host: https://romanus.ru — но теперь это уже не нужно), кроме замены пути для sitemap.xml.

    В самой карте сайта нужно изменить все ссылки. Если она у вас выводится автоматом + все ссылки в базе данных вы изменили — чаще всего никаких доработок не понадобится. Но лучше перепроверить:

    В sitemap.xml не должно быть ссылок на незащищенный протокол

    P.S. Многие рекомендуют делать исключения в .htaccess, чтобы robots.txt открывался по 2 протоколам. Я не делаю этого — проблем не замечал, но держу вас в курсе.

    Шаг 2: Покупка SSL сертификата

    Прежде чем приобретать SSL нам нужно определиться с нашими потребностями.

    Типы ssl

    Все сертификаты выдаются для 1 домена:

    • С проверкой домена (DV): отлично подойдет для блогов, сайтов-визиток, интернет-магазинов и любых сайтов, для которых важно само наличие SSL. Стоит дешево, выдается быстро., замок показывается в браузере.
    • С проверкой компании (OV): вариант для тех, кому важно большее доверие, т.к. центр сертификации проверяет принадлежность компании к домену. Нужно крупным компаниям и магазинам. Делается за 3 дня.
    • С расширенной проверкой (EV): максимальное доверие к компании, т.к. выдается только юридическим лицам и центр сертификации проверяет больше данных. Делается за 7-10 дней, стоит дорого, но вы получаете в браузере вывод вашей компании:

    Пример отображения в браузере EV сертификата

    Если у вас много поддоменов и вы хотите их перевести на https — стоит обратить внимание на сертификаты с пометкой Wildcard (количество поддоменов неограниченно).

    Активация https для домена

    После того, как вы решили какой тип сертификата вам нужен, купили его (свои сертификаты я покупал на gogetssl.com, а для блога решил потестить бесплатный Let’s Encrypt) и не забыли сохранить все ключи, которые вам были даны — самое время привязать все к вашему домену.

    После активации домена он должен пройти валидацию:

    Валидация домена пройдена

    Все, теперь можно переходить к следующему шагу.

    Бесплатный SSL от Let’s Encrypt

    Let’s Ecnrypt — это некоммерческий центр сертификации. Вы можете без проблем взять их бесплатный сертификат, если вам важно само наличие https.

    Яндекс и Google (а также браузеры) нормально относятся к нему, т.е. никаких трудностей у вас не будет.

    У хостеров бесплатный сертификат подключается за 1 минуту

    На многих хостингах можно буквально за минуту подключить бесплатный SSL.

    Установка SSL на примере FastVPS

    У вас есть ключи и все что вам нужно сделать — это добавить их в панели своего хостинга.

    Просто вставить в поля свои ключи от центра сертификации

    Шаг 3: Оповещаем поисковые системы

    После покупки и установки сертификата на подготовленный сайт мы можем оповестить о наших действиях поисковые системы Яндекс и Google в их кабинетах.

    Яндекс.Вебмастер

    1. Добавляем версию с https в панель вебмастера;
    2. На старом зеркале с http заходим в переезд сайта и ставим галочку;
    3. Залить новую карту сайта;
    4. Не забыть поставить регион

    Меняем зеркало в Яндекс Вебмастере

    По сути в Яндексе переезд на https осуществляется 1 галочкой + перенести свежие данные.

    Google Search Console

    Самое страшное, что может произойти во время переезда сайта на https в Гугл — забыть перенести Disavow файл, потому краткий чек-лист:

    1. Добавить новое зеркало с https;
    2. Если у вас были отклонены ссылки через Disavow Links — нужно обязательно обновить данные;
    3. Добавить карту сайта;

    Шаг 4: 301-редирект с http на https

    Здесь все сложно и просто одновременно. Подробная статья о 301 редиректах с примерами, рекомендую изучить.

    Скорее всего вам подойдет один из вариантов:

    Если варианты не подошли — дергаем программиста с просьбой “склеить 301 редиректом все страницы на http со страницами на https” соответственно.

    Шаг 5: Ожидание переиндексации

    Если вы нигде не накосячили то склейка происходит довольно быстро: 1-2 недели в Google и 2-4 недели в Яндексе.

    • Если у вас были скрипты репостов — они будут показывать 0, т.к. http и https это 2 разные версии;
    • Сайт временно может падать по трафику и позициям в момент склейки. После всей процедуры с большей вероятностью все восстановится;
    • Ссылки будут переклеены в среднем от 4 недель до пары месяцев;

    Вроде все страхи описал.

    Поздравляю, теперь у вас рабочий сайт на https, проверить можно на https://www.ssllabs.com/ssltest/:

    Проверка корректности SSL

    13 популярных ошибок при переходе сайта на https

    Пишу самые популярные моменты, которые знаю из своего опыта или опыта коллег:

    1. Сделать 302 редирект вместо 301 для склейки версий http с https;
    2. Сделать редирект всех внутренних страниц на главную;
    3. Допустить цикличные редиректы;
    4. Забыл, что твой сайт без www, но склеить с https://www.site.ru;
    5. Забыл прописать новый путь для sitemap.xml;
    6. Пропустил этап с заменой абсолютных ссылок;
    7. Не изменил урлы в скриптах и медиа-контенте;
    8. В карте сайта указаны урлы на версию с http;
    9. Описался при наборе домена при получении сертификата;
    10. Может сломаться 1С, если забыли обновить данные;
    11. Сайт интегрирован с различными API и вы забыли изменить адреса;
    12. Косяки с rel=”canonical” на старые страницы;
    13. Не очистил кэш и начал сам себе выдумывать проблемы.

    А с какими косяками вы сталкивались?

    Ответы на несколько вопросов

    Напоследок несколько популярных вопросов, которые могут всплыть:

    Почему сам тянул с переездом на https?
    Я все никак не могу взяться за свои проекты (это видно по дате последних постов и съемки видео на канале), ну и решающим моментом стало оповещение Яндекса о том, что уже пора бы.

    Читайте также:  Не пингуется сетевой принтер

    Могу ли я потерять посещаемость?
    Да. Любые действия с сайтом в теории могут негативно повлиять на трафик. Но чаще проблем не бывает, если нигде не напортачил.

    После перехода на https упали позиции, что делать?
    Это тоже нормально. От момента переезда я обычно засекаю 3-4 недели (примерно) и не обращаю внимания на колебания. По истечении этого срока уже должна произойти склейка (в вебмастере зеркала будут слеплены вместе) и тогда можно делать какие-то выводы. Чаще всего все восстанавливается и иногда даже с плюсом.

    Я хочу ЧПУ и SSL — в какой последовательности делать
    Очень скользкий вопрос, сродни «Какой рукой открывать дверь: правой или левой?». Я опасный и потому делаю все сразу за 1 раз :). Проблем вроде не было, но склейка была дольше.

    Настройка сайта для работы по HTTPS

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

    В первую очередь осуществляется переадресация сайта на защищенный протокол HTTPS. Переадресация с протокола HTTP на протокол HTTPS реализуется добавлением в файл .htaccess следующих директив:

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

    Проверить страницы сайта можно с помощью следующего сервиса.

    При наличии элементов, доступных только по протоколу HTTP, ссылки на них меняются на относительные (к примеру, вместо http://yourdomain.com/content/pic.jpg в коде страницы ссылка должна иметь вид /content/pic.jpg ), либо явно указывается использование протокола HTTPS (в таком случае ссылка будет иметь вид https://yourdomain.com/content/pic.jpg ").

    Также меняются ссылки для элементов, загружаемых с внешних ресурсов. Например, если на сайте используется скрипт, доступный по адресу http://externaldomain.us/scripts/ad.js , эта ссылка должна быть изменена на //externaldomain.us/scripts/ad.js или https://externaldomain.us/scripts/ad.js . Обратите внимание, что сайт, на котором расположен элемент, также должен иметь валидный SSL-сертификат.

    Настройка известных CMS для работы по HTTPS

    Помимо ссылок, которые явным образом указываются в коде страницы, существуют особенности при переводе различных CMS на защищенный протокол.

    Joomla!

    В конфигурационном файле (configuration.php) строка public $live_site =»"; заменяется на следующую public $live_site = ‘https://www.yourdomain.com’; где "yourdomain.com" — имя домена. Также вместо строки public $force_ssl = ‘0’; используется: public $force_ssl = ‘1’; .

    В Joomla! версии 3.x. перевод сайта на протокол HTTPS может быть осуществлён автоматически в административной панели сайта в разделе Система -> Общие настройки. На вкладке Сервер в поле "Включить SSL" устанавливается значение "Весь сайт".

    В Joomla! 3.x. Русская версия для проверки работы сайта по протоколу HTTPS до указания в файле /public_html/.htaccess рекомендуемых в данной статье директив, можно внести изменения в файл /public_html/libraries/joomla/uri/uri.php, заменив строку if (isset($_SERVER[‘HTTPS’]) && !empty($_SERVER[‘HTTPS’]) && (strtolower($_SERVER[‘HTTPS’])!= ‘off’)) на if (isset($_SERVER[‘HTTP_X_FORWARDED_PROTO’]) && $_SERVER[‘HTTP_X_FORWARDED_PROTO’] == ‘https’) .

    Обращаем внимание, что указанные действия производятся уже после установки сертификата на домен, иначе они могут привести к неработоспособности сайта.

    WordPress

    В административной панели WordPress производится смена протокола в адресе сайта. Для этого в разделе "Настройки" > "Общие", в полях "Адрес WordPress" и "Адрес сайта" протокол "http" меняется на "https".

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

    Bitrix

    Работа сайта включается в административной панели сайта с использованием безопасного соединения. Сделать это можно следующим образом: Настройки > Управление масштабированием > Панель управления > Глобальные действия > Включить https.

    Drupal

    В конфигурационном файле (/sites/default/settings.php) добавляется следующая директива $conf[‘https’] = TRUE; Также, для удобства настройки безопасного доступа к авторизованным разделам сайта рекомендуем установить модули "Auth SSL Redirect" и "Secure Login".

    Для расширенной настройки доступа к сайту по защищенному протоколу рекомендуем установить модуль "SSL 1.0.0-ga", доступный по следующей ссылке. При использовании MODX Revolution для настройки работы сайта по https вносятся следующие изменения в конфигурационный файл core/config/config.inc.php:

    После внесения изменений очищается кэш MODX.

    Как указать поисковым системам, что сайт является защищенным

    Компания Google рассматривает использование HTTPS на сайте в качестве фактора ранжирования. Для корректного индексирования сайта по протоколу HTTPS компания Google рекомендует соблюдать следующие правила:

    Используйте относительные URL для ресурсов, которые находятся на одном защищенном домене.
    Например, для перехода на страницу на вашем сайте example.com, использовать a href="/about/ourCompany.php" предпочтительнее, чем a href="https://example.com/about/ourCompany.php" . Это гарантирует, что ваши ссылки и ресурсы всегда будут использовать HTTPS. За счет этого также уменьшается вероятность ошибок в локальном развитии сайта, так как изображения, страницы и другие ресурсы загружаются из локальной среды разработки, а не из производственной среды.

    Используйте схожие по протоколам URL-адреса для всех остальных доменов (например //petstore.example.com/dogs/biscuits.php ), или обновите ссылки своего сайта для перехода непосредственно на ресурс HTTPS.

    Конструктор сайтов настройка протокола HTTPS

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

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

    Не нашли ответ на свой вопрос? Позвоните нашим специалистам по бесплатному телефону 8-800-100-16-15.

    Ссылка на основную публикацию
    Как изменить учетную запись в аутлуке
    После установки учетной записи в программе Microsoft Outlook, иногда требуется дополнительная настройка отдельных параметров. Также, бывают случаи, когда поставщик почтовых...
    Драйвер для веб камеры на ноутбук acer
    by Acer Inc. After you upgrade your computer to Windows 10, if your Acer Camera Drivers are not working, you...
    Драйвер для микро сд карты
    SD(miniSD,microSD) флеш-карточки формата SDHC (Secure Digital High Capacity), допускают объем от 2 до 32 гигабайт. Эти карточки имеют такой же...
    Как изменить ттл на компьютере
    TTL (Time To Live) — это значение времени, на протяжении которого пакет с данными блуждает по сети со способностью передачи...
    Adblock detector