- Видео урок.
- Переход Joomla на HTTPS.
- Что такое HTTPS и зачем он нужен.
- Преимущества и недостатки HTTPS.
В данной статье мы рассмотрим вопросы, касающееся переноса сайта Joomla на HTTPS протокол, а также выясним, зачем это нужно и какие есть преимущества и недостатки.
Видео урок
- Шаг 1 (внутренние ссылки) – 00:01:11.
- Шаг 2 (внешние ресурсы) – 00:04:24.
- Шаг 3 (meta name="referrer") – 00:05:38.
- Шаг 4 (установка SSL) – 00:06:32.
- Шаг 5 (проверка SSL) – 00:07:56.
- Шаг 6 (перенаправление) – 00:09:36.
- Шаг 7-10 (донастройка) – 00:12:10.
- Шаг 11 (тест сайта) – 00:13:54.
- Шаг 12-16 (дополнительные сервисы) – 00:17:01.
- Шаг 17 (отслеживание перехода) – 00:19:41.
Видео лучше просматривать с качеством 720 HD. Этот и другие видео уроки можете найти на каналах сайта Aleksius.com в YouTube и Mail.ru.
Ссылки из видео:
- Qualys SSL Labs.
- Поиск ошибок смешанного содержимого в WebSite Auditor.
- «Переезд сайта после отказа от директивы Host» (Яндекс).
Большинство информации будет полезно не только для перехода уже существующего сайта, но и для запуска нового. Материал может пригодиться владельцам сайтов на Joomla и на любых других CMS.
В 2012 году сайт Aleksius.com работал на протоколе HTTPS с бесплатным SSL от StartSSL™ PKI (01.01.2018 этот центр сертификатов закрылся). После этого я перешёл на HTTP. В статье «Защита Joomla (часть 8). Бесплатный SSL сертификат» рассмотрен ряд вопросов по данной тематике. Но с тех пор произошли изменения в данном направлении.
В 2017 году снова перевёл сайт Aleksius.com, а также пару других своих сайтов на защищённый протокол HTTPS с бесплатным SSL сертификатом от Let’s Encrypt. Проседания трафика или потерь позиций не наблюдалось ни в Google, ни в Яндекс.
Для сайта Didzhej.kh.ua, спустя 1-2 месяца после переноса на HTTPS, заметил небольшой рост позиций в Google (Украина и Харьков) по некоторым запросам. Никаких работ, кроме перехода на HTTPS, не проводил. Возможно совпадение, а, может, и маленький «бонус» за защищённый протокол.
За несколько лет переводил около десятка клиентских сайтов с HTTP на HTTPS. Сайты разной тематики, с разной посещаемостью. Ни разу не наблюдал роста или падения позиций. По крайней мере, в течение 1-4 месяцев после перехода.
Переход Joomla на HTTPS
При переносе своих сайтов, в основном, руководствовался рекомендациями с официальных сайтов Google и Яндекс. Плюс, очень помог чек-лист по переходу на HTTPS, который выложил Виктор Есипов в комментариях к вопросу в справочном центре Google. На всякий случай, прикрепляю этот файл в конце статьи над комментариями. Стоит отметить, что с 14.04.2017, когда был выложен данный чек-лит, произошли некоторые изменения. Например, в 2018 году Яндекс отказался от директивы Host в файле «robots.txt». Также в блоге Яндекса для вебмастеров 03.06.2019 была опубликована статья «Самые популярные вопросы про переезд сайта на сегодняшний день», в которой можно найти более свежую информацию по данному вопросу, чем в прикреплённом файле.
Будем рассматривать процесс перехода уже существующего сайта на Joomla 3.9.15 с использованием бесплатного SSL сертификата от Let’s Encrypt на Хостинге Украина без выделенного IP. Информация актуальна на 09 февраля 2020.
На всякий случай рекомендую сделать резервную копию всего сайта.
Шаг 1. Проверьте, чтобы все внутренние ссылки сайта были относительными, а не абсолютными. Например, если в одном материале Вы ссылаетесь на другой, то ссылка должна быть такой: «/joomla/rasshireniya/dj-catalog2», а не такой: «http://aleksius.com/joomla/rasshireniya/dj-catalog2». Не указывайте протокол и домен. Для упрощения данного процесса можно выгрузить базу данных Joomla, открыть её, например, в Notepad++ и поискать абсолютные ссылки.
Для поиска можно ввести это (без кавычек ёлочек): «href=http://aleksius.com». Вместо моего, подставьте свой домен. Если таких значений много, то можно автоматически заменить:
href=http://aleksius.comна
href=/Делайте это с осторожностью и только в том случае, если Вы уверены в своих навыках.
Шаг 2. Проверьте, чтобы все ссылки на внешние ресурсы (скрипты чатов, счётчики статистики, видео с видео-хостингов) были указаны с защищённым протоколом. Например, «https://www.youtube.com/embed/XD», а не «http://www.youtube.com/embed/XD».
Шаг 3 (не обязательный). Если Вы ссылаетесь на другие сайты и хотите, чтобы в их статистике Ваш сайт был реферальным источником перехода, то добавьте в код каждой страницы этот тег:
<meta name="referrer" content="origin" />Его нужно добавлять перед закрывающем тегом «</head>». Более подробную теоретическую информацию можно получить в статье «О пользе мета-тега «referrer» в эпоху шифрования». Если Вы используете у себя на сайте компонент sh404SEF, то перейдите в его настройки, на вкладку Компонент sh404SEF – Расширенные, и выберите в спадающем списке Политика источника нужное Вам значение. Я выбрал Только источник. Есть и другие способы добавления данного тега. Специально устанавливать только для этого sh404SEF нет смысла.
Шаг 4. Установите на хостинге SSL сертификат согласно инструкции Вашего хостинг-провайдера. Или попросите сделать это техническую поддержку хостинга. Но пока не включайте перенаправление с HTTP на HTTPS.
Шаг 5 (проверка SSL). Протестируйте сертификат. Я предпочитаю сервис Qualys SSL Labs. Если оценка «А» («А+» или «А-»), то всё нормально. Если оценка ниже, то рекомендую ознакомиться с замечаниями более детально и посоветоваться с Вашим хостинг-провайдером, как можно их устранить. Обратите внимание, что не всегда низкая итоговая оценка, например «B», свидетельствует о проблемах с сертификатом. На рисунке ниже показана часть результатов теста моего SSL
В моём случае оценка с «A+» (так было в конце 2019 года) снизилась до оценки «B» из-за изменений в критериях оценки данного сервиса. Мой хостинг поддерживает протоколы защиты транспортного уровня (TLS) версии 1.0, 1.1, 1.2, 1.3. Но протоколы версии 1.0, 1.1 устарели и являются менее безопасными. Немного подробнее об этом можно прочесть в статье «Браузеры отказываются от поддержки TLS 1.0 и 1.1» (статья за октябрь 2018). Система тестирования Qualys SSL Labs считает, если к сайту можно подключиться по TLS 1.0 и 1.1, то это снижает уровень безопасности.
Но мой сайт не единственный. Например, у «https://www.google.com» тоже оценка «B» (рисунок ниже).
И у сайта самого большого банка в мире (Industrial & Commercial Bank of China – Промышленный и коммерческий банк Китая) тоже (рисунок ниже).
С такой же оценкой на данный момент (09.02.2020) сайт Symantec – крупная компания по разработке программного обеспечения в области информационной безопасности и защиты информации (рисунок ниже).
Обязательно проверьте сайт в разных браузерах. В том числе, в мобильных.
Шаг 6. Настройте перенаправление с HTTP версии на HTTPS. В самой CMS Joomla, перейдите в Система – Общие настройки – Сервер и для опции Включить SSL выберите Весь сайт (рисунок ниже).
Рекомендую очистить кэш сайта и браузера. Уже после этого весь сайт должен работать по протоколу HTTPS.
Также можно сделать перенаправление с HTTP на HTTPS версию сайта в панели управления Вашего хостинга. Об этом можно узнать в технической поддержке хостинга. У хостинга Украина в панели управления перейдите в Мои сайты – «НАЗВАНИЕ ВАШЕГО САЙТА» – Настройки SSL и для опции Переадресация HTTPS выберите Переадресовывать запросы с http на https (рисунок ниже). После этого подождите минут до 15 минут.
Ещё один вариант – перенаправление, заданное в файле «.htaccess». Есть несколько вариантов. Попробуйте их или уточните в технической поддержке Вашего хостинга.
Вариант №1.
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]Вариант №2.
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]Вариант №3.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Вариант №4.
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Также в файле «.htaccess» можно добавить следующую команду:
<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
</IfModule>Она нужна чтобы задействовать HSTS (HTTP Strict Transport Security). Подробнее об этом механизме можно прочесть в Википедии.
Если Ваш хостинг поддерживает CAA (Certification Authority Authorization) записи, Хостинг Украина их поддерживает, то можете добавить эту запись. Немного подробнее о ней можно прочесть в статье «DNS-запись CAA. Зачем нужна и как использовать?».
Шаг 7. Если речь идёт именно про HTTPS в Joomla, то в файле настроек «configuration.php» найдите директиву «public $live_site», и если там указан домен, укажите защищённый протокол для него. Например:
public $live_site = ' https://aleksius.com/';Если у Вас там ничего не указано, то пусть так и будет. Не надо ничего добавлять.
Шаг 8. После настройки SSL в Joomla подумайте, какие именно у Вас есть расширения, которые могут «контролировать» протокол сайта. Например, в RSSEO, в плагине, есть опция, которая позволяет указать протокол сайта и домен. Подобные настройки есть в sf404SEF. И таких расширений много. Поищите их у себя и перепроверьте настройки.
Не забудьте исправить протокол в правилах перенаправлений в файле «.htaccess» или в каких-то расширениях, где Вы ранее могли настраивать перенаправление со старых URL на новые.
Шаг 9. Проверьте файл «robots.txt». Если там есть ссылки на карты сайта, то замените их на защищённый протокол.
Шаг 10. Если у Вас мультиязычный сайт, тогда проверьте, чтобы в HTML коде страниц, для тега «rel=alternate», была указана версия HTTPS сайта. Например:
<link href="https://didzhej.kh.ua/" rel=alternate hreflang=ru-RU />Также проверьте, чтобы в HTML коде страниц, для тега «rel="canonical"» была указана версия HTTPS сайта. Например:
<link href="https://aleksius.com/joomla/rasshireniya/google-structured-data" rel="canonical" />Это можно сделать, например, при помощи плагина Aimy Canonical PRO.
Шаг 11. Протестируйте весь сайт. Для этих целей можно посетить все страницы сайта (если их не много) и понаблюдать за сообщениями в консоли для веб-разработчиков в браузере и за значком защищённого соединения в адресной строке браузера. Если в консоли есть ошибки типа «Загрузка смешанного (небезопасного) отображаемого содержимого», если возле значка защищённого соединения в адресной строке браузера есть предупреждающий знак (рисунок ниже, в Mozilla Firefox 70.0.2), тогда ищите причину проблемы. Знайте, что страница не полностью работает по HTTPS.
Немного подробнее о смешанном содержимом можно прочесть в статьях «Что такое смешанный контент и как устранить его при использовании протокола HTTPS» и «Как проверить безопасность соединения с сайтом».
Иногда причиной таких ошибок могут быть внешние ресурсы, загружаемые по HTTP протоколу. Например, веб-шрифты, библиотека jQuery и т.д.. Такие ошибки можно устранить путём настройки расширений, которые используют эти ресурсы. Например, в настройках плагина, отвечающего за контроль версий jQuery, часто бывает опция, которая позволяет сменить протокол, по которому подгружается библиотека.
Если не смогли найти такие настройки, можно скачать весь сайт себе на компьютер (можно без картинок, вложений и видео) и запустить поиск по содержимому файлов. В качестве искомой фразы укажите часть или весь URL с протоколом HTTP. Если найдёте, то попробуйте исправить протокол ссылки прямо в файле. Для поиска я предпочитаю использовать FreeCommander XE.
Если сайт большой, то посещать все его страницы слишком долго. Посетите самые важные и «типовые». Например, несколько карточек товаров, несколько страниц категорий товаров и т.д.
Можно автоматизировать процесс проверки смешанного содержимого. Я так и делаю. Проверяю все страницы сайта, доступные для индексации при помощи специальной программы – WebSite Auditor (рисунок ниже). Заодно проверяю наличие дублирования HTTP и TTTPS версий сайта.
Программа построит список URL адресов, где найдена ошибка смешанного содержимого. Это очень ускоряет процесс поиска подобных проблем. Особенно, если сайт состоит из сотен и тысяч страниц.
Для проведения бесплатного SEO анализа с выявлением ссылок работающих на HTTP, можно использовать программу SiteAnalyzer.
Шаг 12. Если Вы ранее регистрировали сайт в Яндекс Вебмастер, то следуйте инструкциям в статье «Переезд сайта после отказа от директивы Host». Также рекомендую ознакомиться со статьёй «Самые популярные вопросы про переезд сайта на сегодняшний день».
Не забудьте для нового сайта (версии с HTTPS) произвести все настройки в Яндекс Вебмастере, как и для сайта с HTTP: добавить карту сайта, указать региональность и т.д.
Шаг 13. Не забудьте обновить протокол сайта во всех сервисах, где Вы его ранее регистрировали: Яндекс.Справочник, Яндекс.Каталог, Google Ads (если это сделать, то можно потерять статистику по объявлениям), Google Карты и т.д.. В принципе, это не обязательно, так как будет работать 301-е перенаправление, которое Вы настроили на шаге №6. Но всё же рекомендую это сделать.
Шаг 14. Если Вы ранее регистрировали сайт в Google Search Console, добавьте туда ещё и версию с HTTPS. Это происходит аналогично тому, как Вы добавляли HTTP версию. Не забудьте добавить карты сайта в Google Search Console (если они есть).
Шаг 15. Если Вы ранее регистрировали сайт в Средствах веб-мастера Bing, добавьте туда ещё и версию с HTTPS. А затем в настройках HTTP версии сайта в разделе Средства диагностики – Перемещение сайта выберите Я перемещаю URL-адреса с этого сайта на другой проверенный сайт: выберите конечный сайт (рисунок ниже) и укажите HTTPS версию сайта.
Шаг 16. Если Вы ранее регистрировали сайт в Кабинете вебмастера Mail.ru, то перейдите в свой сайт в раздел Настройки и активируйте опцию Показывать «https».
Теперь ждите. Регулярно проверяйте сообщения об ошибках в инструментах для веб-мастеров всех поисковых систем. Старайтесь устранять всё максимально быстро. Переезд может занимать достаточно длительное время (даже до 2-6 месяцев). Это зависит от сайта (его размера), ограничений хостинга/сайта в плане скорости индексации поисковыми роботами, поисковых систем.
Шаг 17 (проверка перехода Джумла на HTTPS). Чтобы убедиться, что поисковые системы начали/закончили переиндексацию сайта на HTTPS, можно смотреть на показатели эффективности (клики в веб-поиске) в Google Search Console для HTTPS и HTTP версий сайта. Для HTTP версии эффективность должна падать, а для HTTPS – расти. Это признак того, что переход в процессе. Когда эффективность HTTP версии упадёт до 0, а HTTPS поднимется до прежних показателей HTTP версии (до перехода), это означает, что процесс завершён.
В сервисе Яндекс Вебмастер есть аналогичные данные – Клики в поиске.
Что такое HTTPS и зачем он нужен
Чтобы пользователь мог увидеть страницы Вашего сайта, он должен подключиться к нему. Это подключение происходит на основании набора правил – протокола. Есть много протоколов. Мы будем говорить про HTTPS.
Грубо говоря, HTTPS – это защищённый протокол передачи данных между Вашим сайтом и браузером пользователя. Подробнее об этом можно прочесть в Википедии. Когда пользователь заходит на Ваш сайт, видит его в браузере, вводит свой логин и пароль для доступа в закрытую часть сайта (если такая есть), пишет комментарии/сообщения, оформляет покупки, просматривает видео и т.д., то это происходит за счёт передачи данных от Вашего сайта в браузер посетителя и наоборот. Между сайтом и посетителем данные идут через различные устройства, по проводам или беспроводному сигналу.
Также рекомендую ознакомиться со статьёй в справке Google Search Console «Защитите свой сайт с помощью HTTPS».
Зачем нужен HTTPS. Во время прохождения данных, от Вашего сайта к браузеру пользователя и наоборот, злоумышленники могут перехватить их и воспользоваться в своих мошеннических целях. Например, узнав логин и пароль, они могут войти на сайт от имени пользователя. Благодаря этому могут узнать больше информации о человеке для обмана с целью получения денег. А если на сайте есть конфиденциальная финансовая информация (номера кредитных карт и т.д.), то последствия перехвата данных могут быть ещё плачевнее.
Как раз для минимизации рисков возникновения подобной ситуации существует протокол HTTPS. Благодаря ему данные передаются в зашифрованном виде.
Для настройки HTTPS Вам понадобится SSL сертификат. Как раз он отвечает за шифрование данных. Подробнее про SSL сертификаты можно прочесть в статье «Что такое SSL-сертификат: почему он подключен у 9 из 10 сайтов».
Обратите внимание, что HTTPS даже с самым дорогим SSL сертификатом не гарантирует полной защиты данных.
Преимущества и недостатки HTTPS
Рассмотрим ряд преимуществ, которые может дать HTTPS протокол.
- Повышение защищённости данных посетителей Вашего сайта (при их передаче).
- Повышение позиций сайта. Это не 100% гарантия, но наличие HTTPS – это плюс в ранжировании. 6 августа 2014 года Google объявил, что HTTPS стал фактором ранжирования. 21 февраля 2019 в своём блоге Яндекс также отметил возможное положительное влияние наличия HTTPS на позиции сайта.
- Повышение доверия пользователей к сайту. Большинству простых пользователей не известны преимущества HTTPS, в плане защиты их данных, но так как этот вопрос стал подниматься всё чаще, так как поисковые системы начали обращать на это внимание, то со временем, надеюсь, и обычные пользователи будут с большей охотой отдавать предпочтение сайтам на HTTPS. Также в некоторых браузерах можно найти информацию о том, что соединение зашифровано. На рисунке ниже показан пример такого сообщения для браузеров (сверху вниз на рисунке): Google Chrome 80.0.3987.87, Яндекс.Браузер 20.2.1.234, Opera 66.0.3515.72, Mozilla Firefox 72.0.2.
- Более точная статистика по переходам пользователей. Если Ваш сайт на HTTP, а пользователь перешёл на него с другого сайта на HTTPS, в Вашей статистике это будет отмечено как прямой переход, а не реферальный.
- Некоторые сервисы не поддерживают интеграцию или ограничивают функциональность с сайтами, которые работают на HTTP протоколе. Например, отслеживание в Google Merchant доступно только для URL с HTTPS. С рекламой в Google тоже не всё так просто. Например, согласно правилам Вам могут заблокировать показ рекламы, если Вы производите: «получение реквизитов кредитных карт по незащищенным каналам».
- Возможность применения HTTP/2 для увеличения скорости загрузки сайта. В Firefox, Chrome, Safari, Opera, IE и Edge нельзя использовать HTTP/2 без HTTPS. По этой причине некоторые хостинг провайдеры не активируют HTTP/2, если сайт работает по незащищённому протоколу (HTTP). Подробнее о данном протоколе можно прочесть в статье «Все, что нужно знать о HTTP/2».
А теперь рассмотрим недостатки HTTPS.
- Риск временного снижения посещаемости. Может быть вызвано тем, что для поисковых систем страницы на HTTP и на HTTPS – это разные страницы.
- Нужен SSL сертификат. Есть бесплатные, а есть платные. Если выберете платный, то за него придётся отдавать, примерно, от 6,5$ в год за один домен. На данный момент я не нашёл информации в официальных источниках (от поисковых систем), что сайты с платными сертификатами ранжируются выше. В статье справочной системы Google Search Console есть такая фраза (рисунок ниже).
На самом сайте Let’s Encrypt, на главной странице, есть перечень спонсоров (рисунок ниже). По сути, это список организаций, которые проявили доверие к Let’s Encrypt. Среди них, кроме Google, ещё Mozilla (разработчик программного обеспечения), Cisco (производитель аппаратного и программного обеспечение в области информационных технологий и сетей), Sucuri (компания, специализирующаяся на защите сайтов), Siteground (крупная хостинг-компания) и многие другие известные во всём мире «игроки» IT-индустрии.
На основании этого, а также тестов и собственного опыта, могу сказать, что бесплатный SSL сертификат от Let’s Encrypt не уступает платным аналогам. Под аналогами подразумеваю сертификаты, удостоверяющие домен. Если нужно подтвердить компанию, то бесплатный SSL от Let’s Encrypt не подойдёт.
- Нужно следить за актуальностью сертификата. Если он будет просрочен или отозван центром сертификатов, которым он был выдан, то посетители сайта смогу попасть к Вам только если нажмут ссылку «Принять риск» в окне браузера.
- Сложности при переходе существующего сайта на HTTPS. Придётся потратить время/деньги, чтобы перевести уже работающий сайт на защищённый протокол. Задача усложняется, если на сайте используются элементы с внешних сервисов, которые не поддерживают HTTPS. В таком случае Вы получите ошибки смешанного содержимого.
- Старые версии браузеров требуют наличия выделенного IP адреса для нормальной работы с сайтом по протоколу HTTPS. Таких браузеров очень-очень мало, но они есть. Выделенный IP адрес может стоить около 1,5$ в месяц.
- Незначительные потери в скорости загрузки страницы. Нужно несколько миллисекунд на «обработку» SSL (рисунок ниже).
В завершение хочу привести статистику HTTPS трафика в России по данным Яндекс Радар. В марте 2015 доля зашифрованного трафика была 17,29%, а в январе 2020 выросла до 92,7%. Это может говорить о том, что многие владельцы сайтов прислушались к призывам Google и обзавелись SSL сертификатами.
Рекомендую новым сайтам и сайтам, где трафика нет или почти нет, однозначно начать работать по HTTPS протоколу. Владельцам существующих сайтов с посещаемостью, которую боитесь потерять, стоит подумать, посоветоваться с SEO специалистами и взвесить все преимущества и недостатки. Если Ваш сайт собирает персональные данные (например, интернет-магазин), если Вы хотите интегрироваться с каким-то очень нужным сервисом, но без HTTPS это не получится, то тут больше причин переходить на защищённый протокол. А если у Вас сайт-визитка, лендинг, блог, и Вы не собираете никаких персональных данных, тогда причин внедрять HTTPS протокол куда меньше.
| Похожие материалы |
|---|
| Автор статьи – Хорошевский Алексей |
|---|
Кандидат технических наук, преподаватель Харьковского национального университета радиоэлектроники, веб-мастер и SEO-оптимизатор с опытом более 15 лет. Специалист по созданию сайтов на Joomla и WebSite X5. Автор научных публикаций, видеокурсов и обучающего контента по веб-разработке и SEO. Ведёт блог и YouTube-канал, где делится своими знаниями и практическим опытом. Предоставляет услуги по созданию, доработке, сопровождению и продвижению сайтов. Подробнее об авторе… Публикации и работа: |
Полезные ссылки:
- Основные сведения о переносе сайта с изменением URL (Google).
- Самые популярные вопросы про переезд сайта на сегодняшний день (Яндекс).
- Проверка HTTPS и SSL.
| Скачать файл | Описание |
|---|---|
| zip Чек-лист по переходу на HTTPS | Был актуален на 14.04.2017. Для любых сайтов |

