Привет, друзья! Нельзя сказать, что сегодняшняя тема является новой, скорее даже наоборот. Например, свой первый SSL-сертификат я купил и установил еще 5 лет назад, и уже тогда я не был первопроходцем. Основная цель — безопасность пользователей и их данных (сертификат мы устанавливали на наш сервис CheckTrust.ru). Тогда же я написал большой пост про SSL сертификат для сайта с комментариями представителя сертифицирующего центра, потому что не было все так просто, как сейчас.
Если вспомнить, то Google уже давно топит за переход всех сайтов на https: сначала только разговоры и много пресс релизов, где говорилось, что https будет сказываться на ранжировании, затем в браузере Chrome появилась заметка «Подключение к сайту не защищено». По свежим данным от самого Гугла, 50% всех сайтов уже перешли на https протокол, а присутствие сайтов на https в топ-10 составляет 83%.
Даже если посмотреть статистику Let's Encrypt, то за 2018 год, количество сертификатов увеличилось в 2,5 раза: с 62 до 152 млн:
Кажется, как будто наличие https уже просто необходимое требование, чтобы быть в топе. Но это не совсем так. Причины вовсе не в ранжировании или каких-то бонусах на серпе. Дело опять же в безопасности, например, вы не сможете интегрировать на сайт прием платежей (онлайн оплату), если вы на http. А это нужно очень многим, точнее вообще всем коммерческим сайтам, интернет-магазинам.
А что касается именно ранжирования в выдаче, то за последние годы мы работали со множеством клиентских сайтов, как на http, так и на https. Много сайтов переводили на https и не заметили совершенно никаких изменений в ранжировании! Вот вообще никаких, что в Яндексе, что в Гугле.
Однако, совсем недавно Яндекс в блоге для вебмастеров опубликовал сразу две записи об использовании HTTPS протоколов на сайтах.
25 января 2019 года вышел пост о том, что Яндекс проделал огромную работу, чтобы упростить вебмастерам переезд на HTTPS протокол, а также просит совета у пользователей, что ещё можно было бы улучшить.
Следом, 28 января 2019 года, вышел ещё один, о том, что Яндекс начал показывать ошибки связанные с некорректной настройкой SSL сертификатов на сайте.
Параллельно с этими новостям в панели Яндекс.Вебмастер стали приходить сообщения о недостаточно защищенном протоколе HTTP:
Исходя из этого несложно понять, что переезд на HTTPS дальше откладывать уже нельзя. Несмотря на то, что сейчас влияние SSL сертификата на ранжирование фактически сводится к нулю, поисковые системы в ближайшее время могут начать придавать этому фактору все бОльший вес.
Именно поэтому мы решили ознакомить вас с нашей внутренней инструкцией как перевести сайт с HTTP на HTTPS протокол, которая позволяет осуществить переезд с минимальными потерями трафика и позиций и в Яндексе, и в Гугле.
Так что, наверное, пора...
Подбираем и устанавливаем SSL сертификат
Подробно на том, какие бывают ssl сертификаты, я не буду описывать, лишь скажу, что с точки зрения безопасности все сертификаты имеют одинаковую силу шифрования и используют алгоритм хеширования SHA256. Сертификаты бывают:
- Простые (Domain Validation, DV) – в сертификате указан только домен,
- С проверкой компании (Organization Validation, OV) – указан домен и название компании,
- С расширенной проверкой (Extended Validation, EV) – зеленая адресная строка браузера, название компании в ней, в сертификате также домен и название компании.
Даже самоподписанные ssl сертификаты имеют аналогичный уровень защиты, но их использовать не стоит, потому что любой браузер будет выдавать сообщение о том, что сертификат не подтвержденный, и на сайт не пустит. Но если будете работать по нашей инструкции, вы с этим не столкнетесь.
Если для вас не имеет значения, на кого будет выдан сертификат — то есть вас не смущает, что он будет выдан на физическое лицо — подойдет DV, и скорее всего это будет бесплатный Let's Encrypt. Сертификаты EV физическим лицам в принципе не выдаются. Покупка сертификатов OV возможна для физлица, но процесс валидации намного сложнее, чем у юрлиц.
Вот так выглядит SSL с расширенной проверкой:
Так выглядит и простой SSL, и с проверкой организации:
Я думаю, что 99% читателей данного поста устроит самый простой тип сертификата DV.
Вот еще несколько нюансов, которые помогут вам определить, какой сертификат использовать:
- Если у вас маленький сайт услуг, небольшой интернет-магазин, информационный ресурс, смело используйте бесплатный сертификат от Lets Encrypt.
- Если у вас множество поддоменов, используйте Wildcard SSL. Он позволит защитить не только основной домен, но и все его поддомены. Wildcard-сертификат тоже бывает бесплатный от Lets Encrypt (такая возможность появилась в начале 2018 года).
- Если у вас кириллический домен, подбирайте SSL с поддержкой IDN (Internationalized Domain Names).
- Если у вас проект разветвлен не на поддомены, а на множество отдельных доменов-зеркал, то вам понадобится SAN-сертификат (Subject Alternative Names).
Где взять бесплатный SSL-сертификат от Let’s Encrypt?
Как правило, сейчас все популярные хостинги из коробки позволяют установить для вашего домена данный SSL сертификат.
В пример приведу очень частый среди клиентов вариант хостинга Beget:
Подключить SSL сертификат можно в один клик прямо на странице управления доменом.
Если вы не нашли у своего хостера подобного функционала, смело спрашивайте о нем в технической поддержке. Я практически уверен, что такая возможность есть.
Я же арендую для своих проектов выделенные серверы и всегда с установленной панелью управления ISPmanager. Если и вы используете выделенный сервер с ISP панелью, можете воспользоваться простой видео инструкцией:
https://www.youtube.com/watch?v=FSX3CDJW9bI
Либо официальной справкой: Интеграция ISPmanager с Let’s Encrypt.
Кроме того, что сертификат Let’s Encrypt бесплатный, он имеет ряд преимуществ перед платными сертами: не требует переконфигурации веб-сервера, использования электронной почты (обязательно на домене, для которого покупается сертификат), ручной обработки просроченных сертификатов и т.д. На виртуальных хостингах (и выделенных серверах с панелями управления), предлагающих установку сертификата Let’s Encrypt, установлен клиент, который используется для запроса сертификата, проведения валидации домена, инсталляции сертификата и настройки HTTPS-шифрования.
У сертификатов Let’s Encrypt есть ограничения, с которыми вы вряд ли столкнетесь, но все же:
- Центр сертификации Let’s Encrypt выдаёт только простые сертификаты DV (с валидацией только домена). Выдача более надёжных сертификатов OV и EV не производится (и не планируется). То есть при выдаче сертификата не проверяется законность деятельности, осуществляемой на сайте. Впрочем, при выдаче платных OV сертификата законность и чистота бизнеса (то есть юрлица) тоже не проверяется. Только при выдаче EV сертификата проверяются документы о регистрации, налоговая документация, телефон, владение доменом и род деятельности компании.
- Сертификат Let’s Encrypt выдаётся на 3 месяца (90 дней).
- Можно заказать только 50 сертификатов в неделю на один домен первого уровня и его поддомены (например, сертификат на domain.ru+www,domain.ru, сертификат на host1.domain.ru+www.host1.domain.ru — это два сертификата из пятидесяти);
- Если у вас много поддоменов, то можно все поддомены указать в одном сертификате, но не более 100 поддоменов в одном сертификате.
- Не более 5 дублирующихся сертификатов в неделю. То есть нельзя запросить на один и те же данные, на один и тот же домен дубль уже выданного в течение недели сертификата более 5 раз.
- Let’s Encrypt не предоставляет гарантий и не выплачивает компенсацию в случае утечки данных, так как является некоммерческой организацией. Как вы понимаете, это и есть плата за бесплатность.
- Прочие ограничение, связанные с количество регистраций, производимых с одного IP (500 за 3 часа), ограничение на количество ошибок в процессе выпуска сертификата и т.д. я не стал упоминать. Вам это не пригодится.
Существенным из этого списка может показаться только второй пункт про 3 месяца. Это подразумевает, что вам необходимо будет продлевать или ставить сертификат заново. Но все хостинги и панели управления, которые предлагают установку бесплатного сертификата Let’s Encrypt, поддерживают автоматическое обновление и продление сертификата, так что вам заботиться ни о чем не придется.
Как проверить корректность установки SSL сертификата
Когда придет время делать склейку и редирект, я сообщу!
Если работы по установке SSL сертификата завершены, нужно проверить его корректность. Сделать это можно с помощью множества бесплатных сервисов. Вот несколько, которые используем мы:
- https://www.sslshopper.com/ssl-checker.html.
Просто введите адрес своего сайта с указанием HTTPS протокола в соответствующее поле и дождитесь результата. Он должен быть следующим: - https://www.ssllabs.com/ssltest/analyze.html.
Тоже вводите адрес своего сайта и ждете результатов. Цель — получить оценку A+: Кроме итоговой оценки, вы увидите перечень проблем, если они есть.
Настройка переезда на HTTPS для Яндекс.Вебмастер и Google Search Console
Предлагаю вам пошаговую инструкцию, которую мы используем в своей работе:
- Добавляем https зеркало в Яндекс.Вебмастер и в Google Search Console.
Добавляем как отдельный новый сайт с подтверждением права владения.
Подробная инструкция по добавлению сайтов в панели вебмастеров есть в справках поисковых систем: Яндекс, Google. - Для Google добавляем файл Disavow для канонической версии сайта, если он составлялся ранее (если были отключены ссылки для Google на http версии сайта или на старом домене).
Нужный вам файл доступен по адресу: https://www.google.com/webmasters/tools/disavow-links?hl=ru&siteUrl=http%3A%2F%2Fwww.site.ru (www.site.ru надо заменить на адрес вашего сайта)
- Генерируем карту сайта с https протоколом.
Здесь ваши действия могут отличаться в зависимости от системы управления. Приведу небольшую инструкцию для одной из самых популярных коммерческих CMS – 1С-Битрикс. - Указываем в robots.txt карту сайта с версией на https.
Пример синтаксиса:Sitemap: https://krasnodarflora.ru/sitemap.xml
- Настраиваем 301-редиректы со страниц http на страницы с https. Настраиваем также 301-редиректы со всех зеркал сайта. То есть с https://www, http://, http://www на основное зеркало с https://. Постарайтесь, чтобы все переадресации происходили через один 301-редирект (то есть в один шаг). Подробнее о настройке редиректов можно почитать у нас в блоге.
- Если сайт участвовал в программе «Товары и цены» от Яндекса, то обязательно нужно подключить данную программу и на https версии сайта.
- Проводим сканирование сайта на предмет оставшихся абсолютных url с http версией. Заменяем их на относительные, то есть убираем у всех ссылок протокол с указанием домена. В итоге ссылки вида
https://alaev.info/blog/post/6848
превратятся в/blog/post/6848
. - Сообщаем о переезде в панели вебмастера Яндекса, отметив галочку «Добавить HTTPS» на вкладке «Переезд сайта». И не забываем нажать кнопку Сохранить.
- В течение пары минут в случае успешного выполнения всех предыдущих действий вы увидите сообщение, что заявка принята и вместо http версии сайта в поиске появится https версия:
- Указываем для https версии сайта регион в Яндекс.Вебмастере и Яндекс.Справочнике:
- Указываем для https версии сайта актуальную карту сайта с https протоколом в Яндекс.Вебмастере:
- Аналогично и в Google Search Console:
- Ждем склейку зеркал. Когда она произойдет, должно прийти уведомление об изменении основного зеркала, а также в Яндекс.Вебмастере сайты должны будут указываться как зеркала:
- В Google ничего подобного вы не увидите. Обе версии сайта будут продолжать указываться как два разных сайта:
Но в отчете «Покрытие» страницы будут исключены из поиска с типом ошибки «Страница с переадресацией»:
- Следите за процессом склейки. Проверяйте, что http страницы выпадают из поиска Яндекса и Google. Постепенно они исчезнут полностью.
Во время переезда следите за тем, как ведет себя трафик и позиции. Возможны кратковременные провалы и в том, и в том.
Вот пример одного переезда.
Так себя вел трафик после настройки редиректов:
А так себя вели позиции:
Сразу после переезда виден ощутимый скачок позиций. Я бы с удовольствием связал его с переездом на https, но это была просто проработка оптимизации целевых страниц.
Выполнение действий из данной инструкции позволит вам осуществить переезд на https протокол с минимальными последствиями для проекта.
И в самом конце хочется дополнить нашу инструкцию вспомогательными ссылками на инструкции от Яндекса и Гугла:
Google: Защитите свой сайт с помощью HTTPS
Google: Перенос сайта с изменением URL
Яндекс: Переезд сайта после отказа от директивы Host
Яндекс: 301 редирект заменит директиву Host при выборе главного зеркала
На этом точно все, друзья.
Спасибо за внимание и удачных вам переездов!
Если есть вопросы, задавайте в комментариях.
Что за сервис съема позиций?
Топвизор
мерси
А почему alaev.info на http? Пора бы уже переехать ) Как говорится, сапожник без сапог)
Не, дело не в сапожнике. Я по прежнему придерживаюсь мнения, что https это не прихоть поисковых систем, а вещь, призванная защитить пользовательские данные. Но у меня на блоге никакого взаимодействия с ними нет, никто не авторизуется, не оплачивает покупки и т.д., перехватывать в мошеннических целях просто нечего. Но это лирика, тем не менее.
Я планировал в ближайшее время переехать на https и описать данные процесс отдельным постом. У нас в студии есть опыт нескольких переездов на https для сайтов на WordPress — это тот еще квест, требующий отдельного серьезного разговора. Вот я и храню свой блог для описания процесса, так сказать.
а разве на WP сложно переезжать? мне из всех cms показалось самым простым )
плагин же есть, easy ssl называется вроде
А практика показывает, что далеко не всегда это тривиальная задача.
Переводя свой сайт работающий на DLE на HTTPS, решил не заморачиваться и закрыл HTTP версию принудительным 301-м редиректом.
Все закончилось успешно. Тогда еще ТиЦ =10 сначала обнулился, но спустя 2 месяца все вернулось назад.
Ну, сейчас все именно так и работает, а раньше это привело бы к тому, что сперва старые страницы бы стали выпадать, новые начали заходить в индекс, как следствие на какое-то время могли пропасть позиции, упасть трафик. Не зря же Яндекс писал инструкцию по "деликатному" переезду, где описан процесс, состоящий не только из 301-редиректа.
Хорошая статья, спасибо! Скажите, пожалуйста, а если ранее была склейка доменов А и B и теперь сайт B переходит на https. Нужно менять редирект с домена А на https://siteB или можно так и оставить редирект с А на http://siteB ?
Да, если такая возможность есть, то стоит заменить редирект с домена А на https:// сайта B
Зачем вообще этот риск потерять трафик из-за смены протокола? Главное преимущество HTTPS: зашифрованное соединение нельзя прехватить с помощью стороннего сервиса и использовать оставленные на сайте данные в мошеннических целях. При переходе на HTTPS незащищенное соединение заменится на зеленое безопасное .
Сейчас риск потерять трафик совершенно небольшой. Но а вообще, если вы не пришли к выводу о необходимости переезда после прочтения поста, то...и незачем!
Помогите плиз!
Всё сделал по статье, всё получилось и работает нормально, но через пару дней увидел что на сайте не работает пагинация (сразу не проверил).
Так понимаю что проблема в редиректе. Перерыл весь инет, перечитывал вашу статью несколько раз про 301 редирект — безрезультатно. Писал хостеру — молчат.
Что делать? Движок ДЛИ 11.0
А вот начало кода .htaccess
DirectoryIndex index.php
RewriteEngine On
# Редиректы
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^page/([0-9]+)(/?)$ index.php?cstart=$1 [L]
Что значит не работает пагинация? Она может работать, но неправильно, а как именно неправильно, что происходит при переходе по ссылке?
PS Всегда рекомендую брать дефолтный htaccess файл и вносить в него правки пошагово. Например, для начала только настроить редирект с http на https и проверить весь сайт.
Я потому говорю, что "начало кода .htaccess" не похоже на дефолтное, даже если убрать оттуда две строки про редиреrт на https.
Это и есть дефолтный .htaccess
А при клике на другие страницы (со 2-й и далее, первые работают) стало выдавать что "Не удаётся установить соединение с сайтом. Не удалось найти IP-адрес сервера"
То есть я брал дефолтный .htaccess разницы с тем что на сайте не увидел но заменил и потом вносил изменения. Подошли только эти две строки со статьи про 301 редирект (но как видно не совсем)
Вот еще момент, а в настройках в админке тоже везде, где надо, прописан https адрес сайта? Думаю, что 11 версия не такая уж свежая, может быть она не очень приспособлена к https и как-то там надо хитрить...
Похоже. Хостеры тоже голову ломают уже 4 часа.
Вместо ссылки https://мой_сайт.ру/krasnoyarsk/page/2/ система выдаёт https://krasnoyarsk/page/2/
Спустя 4 часа глупых вопросов хостинг ответил — "По данному вопросу требуется уточнять информацию на официальных ресурсах CMS или у разработчика сайта"
Спасибо огромное за статью. Проблема оказалась в одном из модулей. Начал удалять по одному и нашел.
В каком модуле? Ну, просто ради интереса спрашиваю.
Модуль сортировки по доп.полям xSearct 1.0 Pro
АлаичЪ, ты обещал статью про переезд на https сайтов на WordPress, напиши пожалуйста.
Яндекс опять гайки закручивает, а информации столько что непонятно чему верить и как с минимальными потерями переехать. Оч. ждем.
Сегодня о ней вспоминал... Блин, ну значит придется писать. Не обещаю это сделать очень быстро, но займусь этим. Мне и самому надо переезжать!
Последнее время на популярных форумах пишут что с переездом на Яндексе все ОК, и вот в Гугле бывает просадка на 10-50% которая иногда и не возвращается. Советуют не настраивать 301 редирект сразу, а оставлять сайт доступным по двум протоколам но прописывать каноникал на https. И, спустя время, когда страницы в индексе гугла заменятся на https, вот тогда уже ставить 301. Как вы относитесь к такой схеме? Использовали ее когда-нибудь? И что на счет разговоров о просадке и не возвращении трафика с Гугла?
Мы пробовали такую схему реализации, и она вполне допустима, но, как показала практика, результат не меняется. Да, Гугл действительно может переезжать значительно дольше Яндекса, но у нас не было ситуаций с большим объемом просадки трафика из данной ПС при переезде.
Раньше стоял Let's Encrypt и всё казалось замечательно. Сервис проверки сертификата (не помню сейчас какой точно), показал что корректно распознаётся, почти во всех современных браузерах. Но однажды достал свой прошлый телефон, на 4 андроиде (к тому, что не такой уж и старый), и не смог зайти на сайт, так как браузер считал сертификат не корректным. Дабы не упускать клиентов, пришлось сменить сертификат. Правда не уверен на 100% что всё дело было в самом сертификате. Может при настройке что-то прощёлкали.
Это в настройке дела. У меня такое было когда-то. Сертификаты между собой не сильно отличаются. Главное, чтобы он не был самоподписанный, тогда как раз такая ошибка может быть, а все остальные, выпущенные доверенным УЦ (Let's Encrypt к ним относится) идентичны.
На самом деле, старый. У меня был когда-то Samsung Galaxy Nexus — первый телефон на Android 4.0 — его представили в конце 2011 года, купил я его в начале 2012. 7 лет прошло. Сейчас уже Android 10 вышла. А электроника нынче уже через 2-3 года устаревает, а 7 лет — это почти что в прошлой жизни дело было.
Приветствую. Тут такое дело. Переезжал, в общем переехал хорошо. Но сервис проверки ssl показывает B. С этим классом можно работать?
И как я понимаю этот класс зависит от сервера хостера? (хостинг виртуальный, сертификат такой же как в описании из коробки).
Да все равно, какой там класс, если сертификат действующий, валидный и все внутренние ссылки и ресурсы через https.
Все нормально, не стоит переживать.