Как установить SSL сертификат на сайт и настроить HTTPS

В этой статье мы разберём, как получить и установить SSL сертификат на сайт WordPress и настроить HTTPS.

Для тех кто не знает, что такое протокол HTTPS можете прочитать в Блоге Яндекса.

Небольшое знакомство — SSL сертификаты имеют разные характеристики:

  • DV (Domain Validation) — проверка домены.
  • OV (Organization Validation) — подтверждение домена и организации.
  • IDN (Internationalized Domain Names) — поддержка национальных доменов.
  • EV (Extended Validation) — с «Зелёной адресной строкой» в браузере.
  • WC (WildCard) — с поддержкой поддоменов.
  • SGC (Server Gated Cryptography) — высокий уровень шифрования.

Для частного лица хватит самого простого «DV».

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

Преимущества SSL сертификата:

  1. Все наверное уже слышали про рекомендации Google переводить сайты на защищённый протокол. По материалам Официального блога теперь это фактор ранжирования.
  2. Так же разработчики Google Chrome объявили, что начиная с 2017 года браузер будет помечать все сайты без SSL, как небезопасные, красным значком «Not secure» в адресной строке.
  3. Возможность включения HTTP2 — подробнее на Хабре.

Для чего нужен ssl сертификат для сайта

Многие вебмастера пишут, что особого увеличения в выдаче не заметили, но всё же если Гугл что то задумал-то в будущем, мне кажется, это будет обязательным условием и лучше это делать раньше, а не ждать до последнего.

Думаю Яндекс тоже скоро к этому придёт, а может уже и ставит втихаря минусики сайтам без SSL.

Сам переход с HTTP на протокол HTTPS, если всё сделано правильно, не вызывает проблем с индексом поисковиков. А новым сайтам рекомендую сразу ставить SSL, не нужно будет потом возвращаться к этому вопросу.

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

Как получить SSL сертификат

Есть два способа получения, как и всегда, это платно и бесплатно 🙂 .

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

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

  1. Через сервис «CloudFlare» и там в настройках «Crypto» включаем SSL.
  2. В компании «StartSSL».
  3. На сайте «Let’s Encrypt», а так же его раздают многие хостинг-провайдёры.
  4. При покупке домена в Reg.ru.

Если кто знает ещё, пожалуйста пишите в комментариях, добавим в список 🙂 .

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

Как купить SSL сертификат

Лично я в поисках наиболее дешёвого SSL нашёл четырёх поставщиков:

  1. Кибер-Парк — от 357 руб. при оплате на 5 лет (397 р./год).
  2. RackStore — от 362 руб. при оплате на 3 года (444 р./год).
  3. FirstSSL — от 470 р. на 3 г. (560 р./г.).
  4. GoGetSSL — позиционируют себя, как самая крупная компания по продажам сертификатов в мире с самыми низкими ценами. От 480 руб. при оплате на 3 г. и 600 руб. если только на 1 год.

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

Я покупал в «Кибер Парке». После регистрации в панели управления переходим «Наши услуги» — «Товары» — «Заказать» (нужно будет заполнить свой профиль — ФИО, адрес, тел.).

Далее генерируем CSR код.

У Вас должен быть домен вида — «любое слово@домен сайта». Именно такой почтовый адрес нужно вставлять для генерации CSR. Если E-mail и домен будут отличаться вы не получите сертификат.

Заполняем всё, как показано на картинке, только своими данными.

Далее у вас появится окно с CSR кодом и Private Key. Сохраните оба значения в блокнот (текстовый редактор, например Notepad).

Полученный код (без Private Key, только CSR) вставляете в поле для ключа. В следующем окне нужно выбрать тип сервера (обычно у большинства Apache, но если не уверены можете спросить в техподдержке своего хостера) и E-mail который вы указали ранее.

Всё, нажимаете кнопку «Заказать», оплачиваете и ждёте письма на почту. Сначала вам придёт код подтверждения, его нужно ввести на странице, перейдя по ссылке в письме.

А минут через 10 придёт сам сертификат.

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

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

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

Как настроить редирект с http на https

Теперь нужно настроить правильную работу сайта через протокол HTTPS. И так делаем всё по шагам.

  1. Заходим в админку сайта и на файловый менеджер на хостинге.
  2. Делаем резервную копию (бэкап).
  3. Устанавливаем плагин «Better Search Replace».
    С помощью его мы заменим все абсолютные ссылки на относительные, если таковые присутствуют. Вкладка «Инструменты» — «Better Search Replace» в ПУ сайта.
    Ещё можете проверить и заменить ссылки в картинках.
    Для этого в верхнее поле введите

    src="http://

    а в нижнее

    src="//

    Так же отмечаем все таблицы и жмём «Run» (выполнить).
    Теперь ваш сайт должен работать по двум адресам, как с HTTP, так и с HTTPS — проверьте. Всё плагин можно удалять, он нам больше не понадобится.

  4. Далее на хостинге открываем файл «wp-config.php» и перед надписью «Это всё …» добавляем следующую строчку:
    define('FORCE_SSL_ADMIN', true);
    /* Это всё, дальше не редактируем. Успехов! */
    

    Это небольшая защита админки WordPress.

  5. Идём в «Настройки» — «Общие» и там где у вас «Адрес WordPress» и «Адрес сайта» прописываем «https://ваш сайт».
    Если эти поля у вас не доступны можно поменять через «Базу данных».

    1. Идём в «PHP MyAdmin».
    2. Ищем там таблицу «wp_options» — двойной клик и редактируем.
  6. В файле «.htaccess» ставим постоянный редирект:
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  7. И через пробел там же добавляем, что сайт можно использовать лишь только через протокол HTTPS:
    <IfModule mod_headers.c>
    # this domain should only be contacted in HTTPS for the next 12 months
    Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
    </IfModule>
  8. Идём в админку сайта и добавляем метатег в секцию «head» там где все ваши метатеги (обычно в файле «header.php»).
    <meta name="referrer" content="always">
    

    Он нужен для передачи данных о переходах. Если вы его не поставите то ничего передаваться не будет, соответственно любых отчётах статистики вы ничего не увидите.

    Его можно не ставить в 2-х случаях, на мой взгляд, когда у вас просто лендинг и вы используете UTM метки покупая траффик или вы никогда не пользуетесь статистикой.

  9. Если в «robots.txt» у вас указана директива «Host» и «Sitemap», то меняем http на https.

На этом настройки сайта закончились. Теперь ваш сайт при любом переходе должен показывать зелёный замочек в строке браузера и в админке тоже.

Но это ещё не всё 🙂 , теперь нужно сообщить поисковикам о нашем переходе, т. к. для них сайт с HTTPS и без SSL — это два разных сайта.

Подробнее, как добавить сайт в поисковики.

  1. Идём в Яндекс.Вебмастер и добавляем наш новый сайт. Далее идёте в «Настройки индексирования» — «Переезд сайта» и ставите галочку «Добавить HTTPS».
  2. Так же добавляем в Google. Тут ничего больше делать не нужно.
  3. Можете добавить в Bing по желанию (аналогично Гугл).
  4. Mail не работал во время написания этой статьи.

С недавних пор (02 июня 2016) и Mail заработал. Сначала добавляете без HTTPS, а потом в настройках указываете какой протокол использовать.

Дополнительно:

  • Ну и не забудьте во всех поисковиках отправить Sitemap.
  • Важный момент — после перехода возможно, что в некоторых старых браузерах и на старых Windows (например XP) сайт будет не отображаться.
  • Ещё если у вас стоит реклама с использованием ресурсов с сайта без SSL то на такой странице у вас вместо «Зелёного замочка» будет «Жёлтый треугольник» с сообщением — что ваше соединение не защищено (пример TripTur).
    Поэтому сотрудничайте только с рекламодателями которые осуществляют свою передачу через HTTPS или как вариант некоторые ресурсы можно загружать к себе (например скрипт баннера).

На этом всё, отслеживайте изменения позиций в поисковиках, а особенно в Google.

Если что то пошло не так после изменений

Проблемы с переадресацией.

Для открытия сайта с HTTPS используется постоянный редирект 301 — это серверная настройка вашего хостинга. На каждом хостинге соответственно своя настройка сервера поэтому мой пример может и не работать у кого-то.

Варианты исправлений:

  1. Пишите в техподдержку с просьбой настроить 301 редирект для HTTPS.
  2. Ищите администратора по серверам на бирже фриланса.
  3. Пробуете другие редиректы:
    RewriteEngine On
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
    
    RewriteEngine On
    RewriteCond %{HTTPS} =on 
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
    
    RewriteEngine On
    RewriteCond %{ENV:HTTPS} !on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

    Так же пробуйте и другие в интернете.

Если слетели плагины, стили или другое.

Нажимаете «Ctrl+U» и смотрите, какие ссылки в коде «http» без «S».

Находите эти строки в файлах и переписываете их ручками.

5080 Добавь к себе на стену:

Отзывы: 34

Добавить отзыв

Нажимая кнопку «Добавить» я даю свое согласие на рассылку и соглашаюсь с политикой конфиденциальности.

Подтвердите, что вы не робот
Отмена

 

2 - Положительные
0 - Отрицательные
100 %
  • Павел

    Здравствуйте, большое спасибо за инструкцию, все работает, кроме одного момента, странным образом во фронтенде не появился заветный зеленый замочек, хотя в админке и по прямым урл к картинкам он есть, в чем может быть проблема? Подскажите пожалуйста… Сайт — video-kursov.net.

    • 101poisk

      Прочитайте пункт «Дополнительно», там как раз 3-им пунктом указано почему так бывает 🙂 . У вас стоит баннер в шапке + форма подписки + счётчик LI и т. д., я пробежался вниз по коду…
      Нужно ВСЕ URL прописывать абсолютными (https://имя сайта) или относительными (//имя сайта) ссылками.

    • Павел

      Сорри за невнимательность, поправил, теперь полный порядок, уррааа!!!

  • Виктор

    Супер. Потратил 1 час на все про все. Автор — ты молодец! Хорошо все изложено и понятно и с примерами. Сайт добавил в закладки.

    • 101poisk

      Рад, что помог!:)

  • Николай

    Добрый день. Спасибо за текст, все предельно понятно. Сделал переезд как вы сказали, все работает, но вылезло одно «но!». Яндекс ругается, что недоступен robots.txt про протоколу http. Оно и понятно, потому что идет редирект. Вопрос, как сделать так, чтобы он был доступен тоже (и надо ли).
    Все найденные в сети примеры не работают. У вас ничего об этом не сказано. Просветите пожалуйста.

    • 101poisk

      Вы сделали переезд сайта в вебмастере яндекса? С HTTPS это уже другой сайт. Это всё равно, что вы бы на другой домен переехали. Так что все ошибки качающиеся «старого сайта» (на http) можно игнорировать.

  • Михаил

    Подскажите пож-та в файле .htaccess все содержимое менять на то, что Вы прописали, или просто добавить?

    • 101poisk

      Если у вас уже есть строчка «RewriteEngine On» (пункт 6), то её можно не писать. Просто добавить перед «/IfModule».

  • Сергей

    Вообщем все получилось с помощью Вашей золотой статьи. Блина даже сайт devaka отдыхает там все непонятно написано еще мелко. Спасибо автору. Вот таких бы по больше и всем будет легче.

    • 101poisk

      Очень приятно слышать 🙂 .

  • Павел

    Добрый день! Проблема все та же Сайт eliseevstone.ru выполнил переадресацию слишком много раз. Подскажите пожалуйста, есть решение?

    • 101poisk

      Вроде всё нормально открывается у вас.

  • Yury55

    Спасибо.
    Прочитал много статей, но Ваша наиболее полная и доходчивая.
    Так держать.

  • Yury55

    Доброго времени. После изменения «.htaccess» браузер выдает ошибку «Сайт выполнил переадресацию слишком много раз. Что не так?

    • 101poisk

      Обновил статью. Дописал для всех у кого какие либо проблемы.

  • ivan

    Здравствуйте! Та же самая проблема, что и предыдущего человека: «после изменения «http» на «https», сайт перестает работать и браузер выдает ошибку «Сайт выполнил переадресацию слишком много раз»».
    Помогите пожалуйста!

    • 101poisk

      Написал на почту.

  • Денис

    Здравствуйте, на свой сайт решил установить SSL сертификат. Выполнил все, как указано в статье, однако после изменения «http» на «https», сайт перестает работать и браузер выдает ошибку «Сайт выполнил переадресацию слишком много раз» Админ, подскажите, что делать? Могу даже оплатить помощь. Пишите сюда или на e-mail!

    • 101poisk

      Отписал на почту.

  • Алексей

    Выстроил все как у вас здесь указанно, но весь сайт сбился и на нем как мне показалась продублировалась вся информация. Electro-sad.ru сайт
    подскажите или намекните пожалуйста с чем может быть связано
    Админка тоже корректно теперь не отображается (((

    • 101poisk

      У вас не изменились пути к файлам в теме. Почему так — не знаю, т. к. все темы индивидуальны.
      Попробуйте руками поменять пути к файлам. Нажмите Ctrl+U и смотрите, где стоит HTTP в ссылках. Ищите эти ссылки в файлах темы и меняйте на HTTPS.

  • Александр

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

    • 101poisk

      Это зависит от типа сертификата, оно нигде не настраивается, а делается при покупке расширенного сертификата — EV (Extended Validation). Вот эти например — rus.gogetssl.com/extended-validation/

    • Григорий

      Консоль-Общие настройки-постоянные ссылки, дальше отметь «название статьи» и не забудь сохранить изменения.

  • Grigoriy

    Перевел блог на WordPress совсем иным путем чем Вы описали. Просто добавил в файл .htaccess небольшое добавление в самом начале: SetEnvIf X-HTTPS 1 HTTPS и с помощью плагина: velvet-blues-update-urls.3.2.7 поменял все ссылки.
    Но возникла проблема — в соц.сетях перестали отображаться картинки с постов — проблема с OpenGraph. Вот что Facebook показал: Объект с URL-адресом «https://dg-palych.ru/blokirovka-ip-zashhita-dostupa-na-wordpress/» типа «website» недопустим, так как не было предоставлено требуемое свойство «og:title» типа «string».
    Что и где делать не знаю. В шаблоне все мета-теги настроены.

    • 101poisk

      У вас нет разметки OpenGraph для картинок — «og:image». У вас стоит плагин «all in one seo pack», наверное он настраивает — значит в нём проблема. Я с ним не имел дел.
      Если настраивали OG не плагином, а сами значит там и ищите проблему.
      Больше не знаю чем помочь).
      Если только вернуть всё назад и посмотреть точно ли раньше были картинки в соц сетях.

  • Алекс

    Понятно написано, спасибо!
    Однако, после всех указанных настроек не срабатывает редирект в браузере на внктренних страницах. Т.е. если внутреннюю страницу открыть по http — то она так и останется. А главная нормально, сама редиректится на https
    В чем может быть проблема?

    • 101poisk

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

  • Сергей

    Просмотрел много статей про установку сертификата, эта наиболее подробная, качественная и главное совсем ПОНЯТНОЯ.
    Автор — реально спасибо!! Многие льт воду, а у тебя все пошагово и доступно. Гугл жмет, требует перейти. Но как всегда стремно, трогать то что работает, на фиг не кому не рекомендую. Но придется.
    Многие пишут про трабылы с Яндексом при переезде. Кто сталкивался? Как решать? даже не как решать, а как не допустить еще на стадии планирования переезда проседания трафа?

    • 101poisk

      Пожалуйста 🙂 . А кто пишет про проблемы с Яшей? Можете ссылку оставить? Лично у меня никаких проблем не было. Да, траффик проседает, но не на всех статьях . Избежать этого вряд ли получиться, нужно принять, как есть. Но со парой апов позиции возвращаются. Думаю можно выбрать время года, когда меньше всего посетителей и делать.

  • Владимир

    Сайт более чем информативен! Очень нравится подача информации. За рейтинг сайтов продажей сертификатов отдельное спасибо! 😉

    • 101poisk

      Всегда, пожалуйста! 🙂

  • эльнар

    Сайт очень хороший! Сразу ввсе понял. Спасибо большое администраторам сайта