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

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

Сразу скажу, что к моменту написания этой статьи я уже сделал перевел один сайта на 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

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

Читайте также:  Как защитить wordpress?

У этого сертификата есть один минус - его нужно продлевать каждые три месяца. Чтобы не делать это постоянно вручную, нужно настроить 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>

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

Читайте также:  Как отключить wp-json?

Как изменить ссылки с 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 и Яндекс переиндексируют сайт и поддадут ему пинка, чтобы он вылетел в ТОП 😉 Теперь вы знаете, как перейти с https на http просто и бесплатно. Если у вас будут вопросы, то пишите, может чем помогу, хотя так все расписал, что даже ребенок должен понять...

 

13 комментариев уже оставлено!

Опубликовано © Блокнот вебмастера

Статью прочитало 233 человек(а) , сегодня - 3 ...