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




Вопрос о том, как перевести сайт на https стоит у меня уже давно, но руки никак не доходили. Недавно я даже купил сертификат, чтобы подключить шифрование хотя бы к основному сайту, но тут же столкнулся с трудностями и поэтому не стал спешить. Теперь тот час настал. Как перейти на https и не потерять трафик? Об этом и пойдет речь.


Лучшая тема для Wordpress: видео обзор...

как заработать в социальной сети

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

Где купить ssl сертификат?

Для начала вам нужно определиться с сертификатом. Есть платные варианты и их очень много, есть и бесплатные, но их мало. Свой первый сайт я подключил к платному сертификату Comodo, который мне обошелся всего в 500 рублей за год. Купил я его через свой хостинг IHOR, очень хороший хостинг, всем его рекомендую:

как перевести сайт на https

После заказа сертификата вам придет письмо от Comodo с архивом ключей и еще секретный ключ в теле письма. Если честно, то сам его я подключить сходу не смог, потом забросил на пару недель это дело, а потом просто написал хостеру и они за 15 минут мне все подключили. Спасибо им еще раз.

500 рублей — это самый дешевый сертификат, если посмотрите на картинку выше, то большинство сертификатов стоят бешеные деньги! Но это не про нас. Даже 500 рублей можно не платить, так как можно взять и бесплатные сертификаты.

Где взять бесплатный SSL сертификат?

Тут есть два пути, один проще другого. Первый вариант — это подключить к серверу бесплатный сертификат от Let’s Encrypt. То есть, вы устанавливаете на сервер их программное обеспечения и получаете КУЧУ бесплатных сертификатов на все свои сайты.

как перейти на https

Тут можно пойти несколькими путями. Если у вас виртуальный хостинг от того же хостинг IHOR, то там в панели уже встроен инструмент по подключению SSL сертификатов от Let’s Encrypt:

Подключить ssl бесплатно

Если у вас виртуальный сервер с ISPManager, как у меня, то с недавних пор в этой панели можно нажав одну кнопку установить Let’s Encrypt на сервер: ИНТЕГРАЦИЯ — МОДУЛИ

как установить Lencrypt

Если у вас нет панели, на многих хостингах ее нужно покупать отдельно, то можно установить Lencrypt через терминал. Кстати, на IHOR панель дается бесплатно 😉 Сделать это можно такими командами:

apt-get install git
cd /home/
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
wget https://github.com/letsencrypt/letsencrypt/archive/master.zip
unzip master.zip
mv letsencrypt-master letsencrypt
cd letsencrypt

Но как вы понимаете, это все для знатоков, и это еще самое простое, что нужно сделать, так как дальше нужно для каждого сайта сгенерировать сертификат и прописать путь к нему в настройках сервера. Не ищите лёгких путей — тогда это ваш путь!

У этого сертификата есть один минус — его нужно продлевать каждые три месяца. Чтобы не делать это постоянно вручную, нужно настроить CRON на сервере, чтобы команда генерации происходила автоматически. Как написано в справке ISPManager, там это все можно настроить на раз два.

Где еще можно взять бесплатный SSL сертификат?

Еще один вариант, который даже проще предыдущего — это воспользоваться сервисом CloudFlare, который не только даст вам бесплатный сертификат, но и защитит вас от DOSS атак, а так же поможет в ускорении сайта путем кэширования и распределенных серверов:

Cloudflare бесплатный ssl сертификат

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

Чтобы подключить свой сайт к CloudFlare нужно у регистратора доменных имен изменить DNS записи, чтобы весь трафик шел через них. У меня это такие адреса:

Система регистрации доменных имен 2domains.ru

Еще раз напишу их тут: elma.ns.cloudflare.com и hugh.ns.cloudflare.com, но у вас они могут быть и другими, их вам дадут при добавлении сайта. Поменяв DNS адреса нужно подождать до двух суток, пока DNS сервера переиндексируют записи.

После этого нужно зайти вот сюда и включить SSL сертификат для конкретного сайта. Хорошо, что у меня там висит один сайт, есть что показать:

podklyuchenie-ssl-sertifikata

Заходим на вкладку CRYPTO и внизу включаем режим Flexible SSL — в этом режиме устанавливать сертификат на сервер не нужно. И все! Проверяем, доступен ли теперь сайт по https протоколу?

Доступность по https

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

Как перевести wordpress на https?

У меня везде стоит WordPress и показывать буду все на его примере. Подготовку к переходу на https нужно начать со смены абсолютных путей в относительные. Это как?

Вот пример ссылки с абсолютным путем:

https://aliprofi.ru

А вот та же ссылка, но уже имеющая относительный путь:

//aliprofi.ru

Есть и другие варианты, но я вам советую использовать именно этот вариант, будет меньше ошибок. Открываем файлы нашей темы на вордпресс в Notepad++ и ищем по документу фразу http.

как найти http

К примеру, у вас может быть такой скрипт:

<script async src="http://zmoe.ru/wp-content/themes/12345i/js/yotube.js"></script>

Превращаем его вот в такой, просто удалив http:

<script async src="//zmoe.ru/wp-content/themes/12345i/js/yotube.js"></script>

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

Как изменить ссылки с http на https?

После этого все ссылки на сайте с http нам нужно переделать на https. Сделать это можно двумя способами: плагином или через базу данных.

ВНИМАНИЕ! Во избежании проблем отключите все кэширующие плагины на сайте и кэширование на сервере!

Плагин — это самый простой вариант и можно начать с него. Устанавливаем на wordpress плагин Velvet Blues Update URLs и после этого идем в его настройки:
как изменить ссылки с http на https

Пишем старый адрес сайта на http, ниже новый на https, ставим галочки все кроме последней и нажимаем кнопку. Пять секунд и все ссылки изменены!

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

Заменяем ссылки в комментариях.
UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://teonote.ru', 'https://teonote.ru');

Заменяем ссылки у авторов комментариев.
UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://teonote.ru','https://teonote.ru');

Меняем ссылки во вложениях к постам и страницам.
UPDATE wp_posts SET guid = REPLACE (guid, 'http://teonote.ru', 'https://teonote.ru') WHERE post_type = 'attachment';

Меняем все ссылки к картинкам.
UPDATE tn_posts SET post_content = REPLACE(post_content, 'http://teonote.ru', 'https://teonote.ru')

Замените url сайта на свой и еще может понадобиться изменить префикс таблиц базы данных, если у вас не стандартный wp — а он не должен быть стандартным. Заходим сюда и даем команды по очереди:

Как изменить http на https через базу данных

Что интересно, плагин не справился с этим сайтом, почему-то вырубился, а этим методом все прошло без сучка и задоринки! Теперь можно пробовать включить HTTPS версию сайта. Даже если вы еще не установили или не купили сертификат, можно создать самоподписанный сертификат и просто попробовать, как все будет работать.

kak-vklyuchit-ssl

В ISPManager нужно поставить вот тут галочки и сайт начинает работать по https, правда браузер показывает, что соединение не защищенное:

oshibka-narusheniya-konfidentsialnosti

Нужно нажать кнопку ДОПОЛНИТЕЛЬНО и потом внизу нажать на ссылку ПЕРЕЙТИ НА САЙТ.  Теперь идем в админку WordPress и меняем в НАСТРОЙКИ — ОБЩИЕ адрес сайта с http на https:

wordpress перевести на https

Вы так же можете столкнуться с такой ситуацией —  Сайт выполнил переадресацию слишком много раз. Удалите файлы cookie..

Сайт выполнил переадресацию слишком много раз

Или его просто может жутко перекосить! Мне помогло то, что в config.php в это место я вписал  такой код:

как правильно настроить https

А вот и сам код, его вставить нужно ИМЕННО в ЭТО место, иначе может не работать:

define('FORCE_SSL_ADMIN', true);
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';

Без этого кода я не мог зайти в админку сайта, когда в самом вордпресс поменял URL сайта. А на этом сайте без этого кода шаблон перекашивало и тема слетала. Вообще, подводных камней может быть много и вы должны быть к этому готовы хотя бы морально.

Хочу заметить, что настроить сайт через SSL CloudFlare мне нормально не удалось, сайт то перекашивало, то не пускало в админку и код, который я привел выше не помог. Поэтому я решил установить на сервер Let’s Encrypt и подключать сайты через его сертификаты, ведь сайтов у меня несколько штук.

Как я уже писал выше, Let’s Encrypt можно установить через консоль, что я и сделал, и теперь я не могу установить его через панель, а как удалить прошлую версию не знаю. Написал в поддержку хостинга, чтобы мне помогли, теперь жду, как раз время ужинать….

Ну вот, тех поддержка отреагировала оперативно и все мне настроила, теперь если зайти в раздел SSL сертификаты, то я вижу кнопку Let’s Encrypt

SSL сертификат бесплатно

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

Let’s Encrypt настройка сертификата

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

выбрать сертификат Let’s Encrypt

Теперь проверяем наш сайт — у меня все работает, проблем нет!

nastrojka-sertifikata-https

Ура! я его победил. Но на этом сказка не заканчивается, если мы не хотим потерять трафик (мы по сути создали новый сайт) нужно рассказать поисковым системам о нашем подвиге. Что нужно сделать обязательно?

1. В файле robots.txt нужно заменить строку:

Host: teonote.ru

На такую же почти, но указывающую на новую версию сайта:

Host: https://teonote.ru/

2. Нужно пересоздать карту сайта, чтобы там были ссылки уже через https. До сих пор многие добавляют ссылку на карту сайта в robots.txt, но это делать не нужно, нужно просто добавить путь к карте сайта в Google Console и Яндекс Вебмастер.

3. Теперь мы плавно перешли к Google Console —  тут нужно просто создать новый сайт, но уже с https версией протокола:

Search Console – https

После этого нужно добавить ссылку на карту сайта, чтобы Google как можно быстрее просканировал «новый» сайт:

Search Console добавить карту сайта

4. Теперь добавляем новый сайт в Яндекс вебмастер, вернее мы покажем ему, что у нас сайт теперь на https:

Переезд сайта на https

Ну вот и все, теперь осталось ждать, пока Google и Яндекс переиндексируют сайт и поддадут ему пинка, чтобы он вылетел в ТОП 😉 Теперь вы знаете, как перейти с http на https просто и бесплатно. Если у вас будут вопросы, то пишите, может чем помогу, хотя так все расписал, что даже ребенок должен понять…


Не нашли ответ? Воспользуйтесь поиском по сайту

15 комментариев
Читайте также другие интересные статьи на сайте...