В отличие от классического Интернет — протокола «http» протокол «https» позволяет осуществлять передачу данных в безопасном режиме, обеспечивая шифрование данных и их целостность. Это особенно актуально для сайтов, на которых пользователи вводят какие-либо пароли, персональные данные, данные платёжных систем, банковских карт и другую информацию, которую потенциально могут пытаться перехватить разного рода мошенники для использования в личных недобропорядочных целях.
Если ранее 2018 года мало кто задумывался об использовании безопасного протокола на своём сайте, то в настоящее время к этому владельцев сайтов и веб-мастеров подталкивают даже поисковые системы, обещая преимущества сайту, работающему по протоколу https, более высокое ранжирование в поиске. Даже Интернет — браузеры научились активно демонстрировать пользователям, с каким сайтом они имеют дело, с безопасным или потенциально небезопасным.
В таких условиях любой мало-мальски серьёзный проект, даже Интернет-блог требует использования для работы безопасного протокола https. Прямо или косвенно, доступность сайта по этому протоколу точно скажется на востребованности сайта среди пользователей сети интернет, а следовательно скажется на так называемом «поведенческом факторе» ранжирования сайта в поисковых системах. В последнее время мне всё чаще приходится переводить сайты, которые создаю сам, на безопасный протокол. В общем то, нет никакого секрета в том, как перевести сайт на протокол https, и сейчас эта методика стала, как говорится, «общим местом», но для разных систем управления сайтами и разных виртуальных хостингов имеются свои нюансы перевода, поэтому я решил поделиться своим собственным опытом перевода сайтов под управлением WordPress на протокол https.
1. Получение сертификата
Для работы сайта по безопасному протоколу первым делом необходимо обзавестись SSL-сертификатом. Именно сертификат позволяет шифровать данные, передаваемые через компьютерную сеть и подтверждает, что сайт, на который зашел посетитель, именно тот, за который себя выдаёт.
Сертификаты бывают трёх уровней.
- DV сертификаты (Domain Validation), подтверждающие доменное имя сайта;
- OV сертификаты (Organization Validation), подтверждающие не только доменное имя, но и организацию, владеющую сайтом;
- EV сертификаты (Extended Validation), подтверждающие целый комплекс информации о сайте.
Серьезные проекты, такие как сайты банков, госучреждений и даже интернет — магазины требуют приобретения сертификатов, обеспечивающих серьёзную проверку владельца сайта и взломостойкое шифрование данных. Для простых проектов, не связанных с передачей конфиденциальных данных, достаточно получение сертификата первого уровня (DV).
Как правило, компании, предоставляющие услуги виртуального хостинга и регистрации доменных имён также предоставляют и возможность получения на бесплатной основе SSL-сертификата первого уровня (DV). Такой сертификат носит название «Let’s Encrypt». В личных кабинетах разных хостинг-провайдеров имеются некоторые отличия в способе получения SSL-сертификата, но как правило, они организованы интуитивно понятно.
Например, в личном кабинете хостинга компании SprintHost для получения бесплатного SSL-сертификата нужно:
- перейти в раздел меню: «САЙТЫ И ДОМЕНЫ ► УПРАВЛЕНИЕ САЙТАМИ»;
- перевести движок переключателя белого цвета напротив доменного имени вашего сайта вправо;
- на электронную почту администратора хостинга должно придти уведомление о том, что сертификат подключен (как правило, это происходит в течение нескольких минут);
Свидетельством об успешной установке SSL-сертификата служит подсветка движка переключателя напротив доменного имени сайта зеленым цветом (см. скриншот ниже).
В личном кабинете хостинга от компании Hostland есть некоторые отличия. Для подключения SSL-сертификата нужно:
- перейти в меню: ДОМЕНЫ ► ПРИКРЕПЛЕНИЕ ДОМЕНА;
- найти доменное имя своего сайта и нажать на кнопку «SSL->HTTPS»;
- дождаться подтверждения (кнопка будет подсвечена зелёным цветом).
Бывают ситуации, когда доменное имя зарегистрировано с помощью одной компании, например, REG.RU, а файлы сайта расположены на виртуальном хостинге другой компании, например, SPRINTHOST. В этом случае у неопытного веб-мастера может возникнуть вопрос: где же следует получать SSL-сертификат? Однозначно верным решением будет — получение сертификата на стороне фирмы, у которой арендуется виртуальный хостинг и где расположены файлы сайта. При этом не нужно переносить домен на обслуживание к этому хостинг-провайдеру, а достаточно его только лишь прикрепить в личном кабинете панели управления хостингом. После его прикрепления для сайта можно будет получить SSL-сертификат.
Замечания: когда нужно переводить сайт на безопасный протокол?
Организацию доступа к вновь создаваемому сайту по протоколу https нужно начинать как можно раньше.
- SSL-сертификат можно приобретать сразу же, как только Вы зарегистрируете доменное имя для сайта и определитесь с хостинг-провайдером и до публикации файлов сайта на хостинге.
- Полноценный переход на безопасный протокол возможен, если на сайте есть хотя бы одна действующая страница.
- Если сайт будет функционировать на основе CMS, то нужно сперва установить CMS на хостинг и выполнить первичную настройку CMS, а затем выполнить полноценный переход на https.
2. Проверка факта подключения SSL-сертификата на стороне браузера
Для проверки необходимо в адресной строке Вашего браузера ввести адрес Вашего сайта, для которого был установлен сертификат, с указанием протокола https. В итоге сайт должен быть доступен и по протоколу http, и по протоколу https:
- http://доменное имя сайта,
- https://доменное имя сайта.
3. Настройка CMS
В своей практике я предпочитаю создавать сайты на основе WordPress. Эта система подходит и для блога и для интернет — магазина, а потому мне нравится с ней работать. Для перевода сайта под управлением WordPress после установки и настройки CMS на протокол https первым делом я вхожу в панель администрирования. Здесь нужно перейти в меню «НАСТРОЙКИ ► ОБЩИЕ».
В этом разделе нужно заменить название протокола, указанного при адресе сайта в полях «Адрес WordPress (URL)» и «Адрес сайта (URL)». То есть выполнить замену «http://доменное имя сайта» на «https://доменное имя сайта» в каждом из полей. После чего обязательно сохранить изменения.
Обратите внимание! Изменение указанных URL можно выполнять только после проверки доступности сайта по протоколу https, как описано в п.2 (см. выше). Если по какой-то причине сайт не доступен по протоколу https, то сайт не будет доступен вообще, а также Вы потеряете возможность войти в админку сайта, чтобы вернуть всё назад. Для возврата настроек придётся редактировать содержимое базы данных! Будьте внимательны!
4. Замена ссылок на относительные
Чем раньше Вы начали перевод сайта на https после установки CMS, тем лучше. Потому что тем меньше накопилось на сайте абсолютных ссылок на различные ресурсы на Вашем же сайте, доступные только по протоколу http. Наличие таких адресов на сайте, который работает через безопасный протокол передачи данных не допустимо!
Поэтому нужно везде на сайте и в базе данных поменять все абсолютные адреса, включающие упоминание протокола http либо на абсолютные адреса, включающие протокол https, либо на относительные адреса без указания протокола вида: «//доменное имя сайта/…«
Использование относительных адресов является предпочтительным, потому что позволяет вернуться к протоколу http при возникновении такой необходимости без существенных затрат времени на замену адресов.
Все абсолютные адреса на вашем сайте, которые Вы прописывали лично, придется заменять вручную. А вот процесс замены адресов в базе данных можно автоматизировать.
Для автоматизации замены адресов в базе данных я использую плагин WordPress под названием » Better Search Replace » (разработчик — Delicious Brains). Этот плагин сканирует по Вашему запросу выбранные таблицы базы данных сайта на наличие строки текста, который Вы ему укажете и может выполнить автоматическую замену на новую указанную Вами строку текста.
- После активации плагина доступ к управлению им появляется в разделе меню «ИНСТРУМЕНТЫ ► BETTER SEARCH REPLACE».
- На вкладке «ПОИСК/ ЗАМЕНА» (1) в поле «Искать» (2) нужно указать абсолютный адрес Вашего сайта с протоколом http, например «http://доменное имя сайта».
- В поле «Заменить на» (2) следует указать относительный адрес, например «//доменное имя сайта» или абсолютный, но с протоколом https: «https://доменное имя сайта». Я предпочитаю использовать относительный вариант адреса.
- В области «Выбор таблиц» (3) следует выбрать все таблицы (Кликнуть на список таблиц и нажать сочетание клавиш «Ctrl»+»А»).
- На всякий случай выполните поиск и автозамену адресов вхолостую, для этого не нужно убирать галочку из чек-бокса (4).
- После нажатия кнопки «Запустить Поиск/ Замену» плагин выполнит свою работу. В верхней части вкладки (1) Вы увидите ссылку «Подробнее». Перейдя по ней, Вы сможете ознакомиться с данными, которые плагин смог найти по Вашему запросу.
- После холостого запуска уберите галочку из чек-бокса (4) и дайте плагину заменить адреса в базе данных Вашего сайта согласно Вашим настройкам.
- После выполнения этого пункта плагин BETTER SEARCH REPLACE можно деактивировать.
5. Включение переадресации на сервере
Сайт должен быть доступен только по протоколу https. Однако он все ещё доступен и по обычному протоколу http. Что же делать? Необходимо на Вашем хостинге настроить 301 редирект с сайта «http://доменное имя сайта» на сайт «https://доменное имя сайта».
Это можно сделать через файл настройки .htaccess. Этот файл создаётся автоматически при установке WordPress. Запись для редиректа следует вписать в самое начало файла. Не каждая управляющая конструкция для 301 редиректа будет работать на том или ином хостинге. Например, для сайтов, размещенных на хостинге компании Hostland подойдёт такая конструкция:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Однако эта конструкция не будет работать на виртуальном хостинге компании SprintHost. Для последнего будет правильнее использовать такую запись:
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
6. Проверка работы сайта по протоколу https в браузере
На этом этапе нам потребуется попытаться запустить сайт, вписав в адресную строку браузера доменное имя сайта с протоколом http. Если переадресация работает нормально, то Ваш сайт откроется, и при этом в строке адреса автоматически появится название протокола https.
Если все манипуляции по переводу сайта на безопасный протокол выполнены правильно, то рядом от адресной строки браузера (слева или справа) Вы увидите закрытый висячий замочек, свидетельствующий о безопасном соединении.
Если Вы увидите открытый замочек или иной знак, то это свидетельствует о том, что на каком-то этапе допущена ошибка.
Чаще всего это может быть связано с наличием абсолютных ссылок на страницах сайта, в адресах которых указан обычный http-протокол.
7. Регистрация сайта в сервисах поисковых систем
Когда сайт доступен по протоколу https и работоспособен можно выполнить его регистрацию в специальных сервисах поисковых систем (например, в «Вебмастере» Яндекса), а также продолжить его редактирование и наполнение в обычном режиме.
Если Вы зарегистрировали сайт в поисковой системе раньше, чем осуществили перевод на протокол https, поисковая система может автоматически сделать версию сайта, доступную по новому адресу зеркалом основного сайта, доступного по обычному небезопасному протоколу.
В прежней версии того же Вебмастера Яндекса можно было принудительно выбрать главное зеркало сайта, а в новой версии Вебмастера с этим могут быть проблемы. Поэтому либо придётся дождаться автоматической смены зеркал в поисковой системе, либо придется удалить сайт из списка сайтов Вебмастера и зарегистрировать его заново, указав сразу правильный протокол.