Инструменты пользователя

Инструменты сайта


perexod_s_http_na_https

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

perexod_s_http_na_https [2019/05/20 13:36]
perexod_s_http_na_https [2020/06/13 13:46] (текущий)
Строка 1: Строка 1:
 +====== Переход с HTTP на HTTPS ======
  
 +~~Title: Переезд сайта с HTTP на HTTPS пошагово и фото (обновление 2018.03) ~~
 +{{htmlmetatags>
 +metatag-keywords=(HTTPS, безопасность сайта)
 +metatag-description=(Переход с HTTP на HTTPS это первый шаг к ускорению вашего сайта, а не просто вопрос безопасности. Претворим хотелку Google в жизнь: ускорим наши сайты.)
 +}}
 +
 +{{ ::https.png?nolink&600 |}}
 +Зачем переходить на HTTPS? Зачем этот бубен? И все кому не лень начинают кричать о безопасности, о SSL сертификатах! **Знайте Вас запугивают! :-)** Действительно протокол HTTPS более безопасен, но это не главная причина зачем нужно переходить на него. В интернете куча простых текстовых HTML сайтов и им по БАРАБАНУ будут они сильней защищены или нет!
 +
 +Главная и единственная причина перехода на HTTPS это новый протокол [[HTTP]]/2 (изначально HTTP/2.0), который Google использует ТОЛЬКО с использованием [[SSL]] сертификатов. Замечу стандарт HTTP/2 **НЕ требует** использования защищенного соединения. 
 +
 +Выводы:
 +  - Переходом на HTTPS мы ускоряем наш сайт, разрешая использование протокола HTTP/2!!!
 +  - Переезд вашего сайта c HTTP на HTTPS это просто хотелка корпорации Google. :-X Вынесем за скобки хорошо это или плохо :-D
 +
 +<note tip>**SEO взгляд на HTTPS**: С недавнего времени поисковые системы стали отдавать предпочтения сайтам, использующим защищенный протокол HTTPS. Поэтому, оценивая большие возможности появления нового фактора ранжирования по протоколу, настоятельно рекомендуется перевести сайт на защищенную версию.</note>
 +
 +
 +===== Краткая пошаговая инструкция переход сайта с HTTP на HTTPS =====
 +
 +  - Покупаете SSL сертификат. Нам нужен обычный SSL-сертификат Domain Validation. Мой выбор бесплатный сертификат от [[Let’s Encrypt]].
 +  - Настраиваем, чтобы сайт был доступен ОДНОВРЕМЕННО по двум протоколам HTTP (порт TCP 80) и HTTPS (порт TCP 443)
 +  - После перехода на HTTPS необходимо сообщить SEO специалисту, чтобы он в [[https://www.google.com/webmasters/|Инструменте для вебмастеров Google]] и [[https://webmaster.yandex.ru|Вебмастер Яндекс]] указал нужный домен.
 +  - [[perexod_s_http_na_https#nastrojka_robotstxt_i_xml-karty_sajta|Настройка robots.txt и XML-карты сайта]]: правим в robots.txt параметр Host для Яндекса и параметр Sitemap:<file>
 +https://domain.com/sitemap.xml
 +Host: https://domain.com
 +</file>
 +  - Изменить главное зеркала на странице «Настройки индексирования — Переезд сайта» сервиса Яндекс.Вебмастер для http версии сайта.
 +  - Ждем 2 недели 8-o 8-o 8-O !! Короче ждем Яндекс, пока он не разродится сообщением в Яндекс.Вебмастере, что он определил главное зеркало в группе зеркал сайта!!
 +  - И только теперь 301 редирект с HTTP на HTTPS. Можно использовать эту инструкцию [[url_redirection#perenapravlenie_http_zaprosov_na_https|Перенаправление HTTP запросов на HTTPS в Apache]], а лучше разобраться и автоматизировать при помощи **[[let_s_encrypt#pravila_301_redirekt_letsencrypt|Let’s Encrypt]] - полный листинг правильного редиректа**.
 +
 +===== Развернутая пошаговая инструкция переход сайта с HTTP на HTTPS =====
 +
 +==== 1. Смена ссылок с абсолютных на относительные ====
 +
 +  * Смена ссылок внутренней перелинковки с абсолютных на относительные. Для того чтобы начать переход на HTTPS, еще перед сменой протокола рекомендуем абсолютные внутренние ссылки на сайте заменить на относительные. Например, <file>
 +http://domain.com/landing/ заменить на //domain.com/landing/ или
 + на формат URI /landing/
 +</file>
 +  * Исправление вложений медиа-контента. Изображения, видео, презентации, и др. необходимо тоже все перевести в относительные адреса, и тогда при переходе на HTTPS медиа-контент также должен подгружаться с защищенных сайтов:
 +  - Если используемые картинки хранятся на нашем сайте, то просто используйте относительные адреса.
 +  - Если подгружаются картинки с внешних ресурсов (CDN или других сайтов), то они также должны поддерживать HTTPS, иначе стоит отказаться от этих вложений. 
 +
 +Популярные сервисы, которые позволяют внедрять свой контент, типа YouTube, SlideShare, виджеты VK или Facebook, и другие, уже давно поддерживают HTTPS, поэтому с ними проблем не возникнет. 
 +
 +Но если есть медиа-контент с непопулярных сервисов, то уточните, будет ли этот контент работать/отображаться, если вы смените протокол.
 +
 +  * Исправление подключений внешних скриптов. Необходимо во внешних скриптах также нужно использовать относительные URL. Например, для библиотеки jQuery, вместо кода: <file javascript>
 +<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">
 +</script>
 +</file>Нужно использовать:<file javascript>
 +<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">
 +</script>
 +</file>
 +
 +Также и с другими скриптами: Яндекс.Метрика, LiveInternet, Google Analytics, Яндекс.Директ, различные javascript библиотеки и др. Здесь принцип тот же: популярные сервисы и библиотеки поддержкивают HTTPS, а вот с непопулярными могут возникнуть проблемы.
 +
 +<note warning>Важно: Также следует изменить URL в атрибутах
 +rel=”canonical”;
 +link rel="alternate" hreflang (при наличии нескольких языковых версий); 
 +rel="next" и rel="prev" (на страницах пагинации).</note>
 +
 +==== 2. Выбор и приобретение подходящего SSL-сертификата ====
 +
 +Существует несколько видов SSL-сертификатов по степени защиты:
 +  * **Organization Validation.** Подтверждает домен и организацию. Могут проверить информацию в прессе, наличие компании в Whois, свидетельство о государственной регистрации. Средняя цена колеблется от $40 до $200 в год.
 +  * **Extended Validation.** Сертификат с расширенной проверкой — для его получения проверяется наличие компании по адресу, свидетельство о регистрации, операционная деятельность, торговая марка. Все для того, чтобы получить зеленую строку в адресной строке браузера. Стоимость в среднем от $120 до $300 в год.
 +
 +Существует и классификация сертификатов по функциональности:
 +  * обычные SSL-сертификаты;
 +  * Wildcard сертификаты — используйте, если хотите установить HTTPS на поддоменах;
 +  * SAN сертификаты — используется для нескольких доменов.
 +
 +Нам нужен обычный SSL-сертификат, Domain Validation. **После установки сайт должен стать доступен как по http, так и по https.**
 +
 +<note important>После получения сертификата и переходе на HTTPS необходимо сообщить SEO специалисту, чтобы он в [[https://www.google.com/webmasters/|инструменте для вебмастеров]] указал нужный домен.</note>
 +
 +==== 3. Установка и проверка корректности работы SSL сертификата на сервере ====
 +
 +После выбора сертификата необходимо установить его на сервере:
 +  * Сервер должен поддерживать SSL-протокол.
 +  * Установка выполняется через панель управления хостингом.
 +
 +https://www.ssllabs.com/ssltest/analyze.html
 +
 +Вот так будет выглядеть результат, если все хорошо:
 +{{ ::ssl-test-02.jpg?direct&400 |}}
 +
 +и так, если есть проблема: в этом случае в настройках моего сервера Apache не был настроена опция Forward Secrecy (как исправить читаем [[https://www.digicert.com/ssl-support/ssl-enabling-perfect-forward-secrecy.htm#apache_forward_secrecy|Configuring Perfect Forward Secrecy]] и выбираем вариант без RC4).
 +
 +{{ ::ssl-test-01.jpg?400 |}}
 +
 +<note tip>Обязательно протестируйте настройку SSL и проверьте как отображается сайт в разных браузерах, в том числе на мобильных устройствах: отдельно проверьте сайт с iPhone и Android. Если есть критичные проблемы, необходимо провести настройки по их решению.</note>
 +
 +==== 4. Настройка robots.txt и XML-карты сайта ====
 +
 +Необходимо создать карту сайта со ссылками на https-версии страниц сайта, и обеспечить ее доступность по ссылке https://domain.com/sitemap.xml. Указать адрес желаемого главного зеркала с помощью директивы Host в файле robots.txt. Например: Host: https://site.ru
 +
 +Также нужно обеспечить доступность файла robots.txt по двум протоколам и привести к следующему виду:
 +
 +
 +^Было для версии HTTP^Стало для версии HTTPS^
 +|User-Agent: *|User-Agent: * |
 +|Disallow: |Disallow: |
 +| … | … |
 +|Sitemap: http://domain.com/sitemap.xml|Sitemap: https://domain.com/sitemap.xml |
 +|User-Agent: Yandex|User-Agent: Yandex |
 +|Disallow: |Disallow: 
 +| … | … |
 +|Sitemap: http://domain.com/sitemap.xml|Sitemap: https://domain.com/sitemap.xml | 
 +|Host: https://domain.com/|Host: https://domain.com |
 +
 +Сообщить роботу об изменениях в отношении главного зеркала на странице «Настройки индексирования — Переезд сайта» сервиса Яндекс.Вебмастер для HTTP версии сайта.
 +
 +==== 5. Настройка редиректов ====
 +
 +После выполнения всех выше указанных пунктов необходимо настроить постраничный 301 редирект с HTTP версии сайта на HTTPS. <note warning>Дождитесь склейки доменов, у Яндекса это может занять несколько недель, дождитесь сообщения в Яндекс.Вебмастере. И только после получения сообщения настраивайте 301 редирект.</note>
 +
 +===== Ссылки по теме (переезд сайта в Яндекс) =====
 +  * [[https://yandex.ru/support/webmaster/yandex-indexing/moving-site.html|Переезд сайта на новый домен]] Яндекс теперь умеет [[URL redirection|301 редирект]]
 +  * [[https://support.google.com/webmasters/answer/6073543?hl=ru|Cправка Google относительно использования https версии]]
 +  * [[https://yandex.ru/blog/blog/platon/2778|Деликатный переезд (или рекомендации Яндекса по переезду на HTTPS)]]