Как правильно перейти на https
Содержание:
- Шаг 1: Подготовка сайта
- Что дает HTTPS в поиске Яндекс и Google
- Виды SSL сертификатов
- Варианты написания серверного редиректа для HTTPS
- В чем различия между http и https?
- HTTP и HTTPS: основы
- Как работает
- 13 популярных ошибок при переходе сайта на https
- Чем отличается HTTPS от HTTP
- Как подключить http/2
- Протокол https и в чем разница между https и http
- HTTP 1.1 — что это за протокол?
- Возможны ли проблемы с точки зрения SEO при переходе на HTTPS?
- Рекомендации по использованию HTTPS
Шаг 1: Подготовка сайта
Многих сложностей может не быть вообще, если изначально за сайтом следили и делали все чисто и без костылей.
Бэкап
Любое вмешательство в жизнь сайта (если это не простые действия с контентом или вы не самоуверенный программист) начинается с бэкапа, т.к. в случае появления проблем — вы быстро восстанавливаете данные и программист уходит все делать на своем серваке.
Относительные ссылки
Когда на сайте абсолютные ссылки вида http://romanus.ru/page-name — это может быть проблемой, т.к. их нужно:
- Либо заменить на относительные вида /page-name;
- Либо в абсолютных заменить протокол на https.
Я бы выбирал 1 вариант, т.к. он более гибкий и пригодится не только в решении текущей задачи. Однако и там есть свои минусы, но это не тема данной статьи.
Уверен, на любом сайте вы найдете волшебную таблетку (пример замены домена в статьях):
Пример замены домена через SQL-запрос: кто-то его проверял?
Почему люди везде это пишут — хз, видимо никто не проверял работоспособность т.к. этот вариант просто не работает. SQL запрос не может заменить домен в ячейке, содержащей целый текст, т.к. это просто замена в лоб (как в Excel). Т.е. вы не можете заменить ячейку, если она не равняется вашему тексту (читай, ячейка = текст и ничего более).
Но у нас же в ячейках текст статей в html формате.
Даю 2 рабочих вариант:
- Для понимающих (хотя им не нужно объяснять). Идем в PhpMyAdmin, экспортируем нашу базу данных (или конкретную таблицу, в которой нужно сделать изменения). Далее открываем редактором типа Sublime или Notepad++ и через замену все меняем. Далее импортируем исправленный вариант обратно в нашу базу данных.
- Чтобы не накосячить. Во многих CMS есть плагины, которые с помощью регулярок могут делать замены (да и без них). Например, для WordPress есть хороший плагин Search Regex — который быстро и без проблем поможет сделать замену в тех местах, в которых это нужно.
Пример работы плагина Search Regex
Все пути к файлам и изображениям также должны быть изменены.
Адрес сайта
В CMS нужно изменить адрес вашего сайта на корректный, в WordPress это делается так:
Замена домена в админке WordPress
Внешние скрипты
Все внешние скрипты должны подключаться строго через https, т.к. в противном случае у вас будет смешанный протокол.
Чтобы убедиться — смотрите страницы через режим исходного кода и проходитесь поиском или любой краулер аля Screaming Frog, Netpeak и т.д.
Robots.txt и Sitemap.xml
В robots.txt чаще всего не нужно никаких изменений вносить (раньше нужно было добавить директиву для Яндекса: host: https://romanus.ru — но теперь это уже не нужно), кроме замены пути для sitemap.xml.
В самой карте сайта нужно изменить все ссылки. Если она у вас выводится автоматом + все ссылки в базе данных вы изменили — чаще всего никаких доработок не понадобится. Но лучше перепроверить:
В sitemap.xml не должно быть ссылок на незащищенный протокол
P.S. Многие рекомендуют делать исключения в .htaccess, чтобы robots.txt открывался по 2 протоколам. Я не делаю этого — проблем не замечал, но держу вас в курсе.
Что дает HTTPS в поиске Яндекс и Google
На скриншоте ниже можно видеть, что на странице результатов поиска Яндекса сайты с безопасным обменом данными и сертификацией SSL отмечены зеленым замочком.
Пользователь может узнать, насколько безопасен ресурс еще до перехода на сайт. Понятно, что сниппеты с замочком имеют более высокую кликабельность и обеспечивают более высокий трафик.
Безопасный обмен пользовательскими данными на сайте – это вопрос репутации бизнеса. Допустим, гражданин решил получить некие финансовые услуги в разрекламированном банке.
У потенциального клиента мгновенно возникает сомнение: «Как это так? Вроде бы солидный, банк, а не удосужились позаботиться о защите клиентов? Может быть это вовсе и не такая респектабельная и надежная финансовая организация, как сама себя позиционирует?»
Не солидно серьезному банку работать по устаревшему проколу HTTP. Может, у вас и сейфы старого образца? Может, у вас кассирами работает неизвестно кто? Такая беззаботность обойдется организации потерей тысяч клиентов, которые хотели, да не решились доверить свои деньги банку, не уделяющему достаточно внимания безопасности клиентов.
Почему корпорация Google решила полностью блокировать загрузку веб-ресурсов без HTTPS в своем фирменном обозревателе Chrome?
Очень просто и логично. Основной рынок для Google – это США. Америка известна тем, что ее граждане по каждому поводу бегут судиться. По числу адвокатов на душу населения США впереди планеты всей.
Вполне вероятно, что Google уже привлекался к судным разбирательствам за то, что американский гражданин или компания, воспользовавшись услугами поиска Гугл, наткнулись на жуликов, потеряли персональные и коммерческие данные, понесли финансовый и репутационный ущерб.
Опытный адвокат сможет выбить из Google миллионы долларов компенсации за моральный и финансовый ущерб.
Вот почему поисковые компании будут вполне жестко требовать от сайтовладельцев обеспечения безопасности и приватности. Ведь речь идет о больших деньгах, которые могу либо заработать, либо потерять Яндекс и Google.
Ну и репутация безопасной поисковой системы – это тоже инвестиция на миллионы долларов.
Требуя от владельцев интернет-проектов внедрения HTTPS Яндекс и Google заботятся о наполнении своего кармана.
Виды SSL сертификатов
Надежные сертификаты криптографического обмена данными предоставляются на платной основе, чем надежнее, тем дороже.
Чтобы не тратить лишних денег за чрезмерный уровень защиты, владельцу интернет-проекта следует проанализировать свои потребности и выбрать оптимально-подходящий сертификат.
Бесплатные SSL с доверенной подписью
На самом деле сертификат SSL можно совершенно бесплатно сделать в панели управления сайтов на хостинге. Однако есть проблема, такие «самодельные» сертификаты не отвечают требованиям ведущих разработчиков браузеров.
Сайты с такими сертификатами часто рассматриваются обозревателями Chrome, Opera Internet Explorer, Mozilla Firefox как подозрительные, не доверенные. В итоге сайты блокируются и не загружаются в самых распространенных браузерах.
К счастью, бесплатный SSL-сертификат с удостоверяющей подписью, которую браузеры рассматривают как надежную, можно получить бесплатно у спонсорских провайдеров.
Например, на сайте letsencrypt.org/ru/ выдаются бесплатно сертификаты, которые все популярные браузеры из «большой пятерки» рассматривают как надежные.
Вот как выглядит адресная строка с сертификатом Let’s Encrypt. Если кликнуть на замочек, выпадает окно с информацией о сертификате.
Теперь кликните по пункту «Сертификат» и в появившемся интерфейсе вы сможете изучить все подробности, какой сертификат, кем выдан и какие имеет параметры защиты.
Бесплатные сертификаты предназначены для некоммерческих веб-проектов, где нет особой необходимости шифровать данные пользователей, поскольку не ведется активная предпринимательская деятельность.
Платные SSL
Надежный коммерческий SSL-сертификат вызывает больше доверия, а доверие – это двигатель торговли. Никто не хочет вести дела с организациями, которым нельзя доверять. Ведь речь идет о деньгах, а иногда и о больших деньгах.
Поэтому, чем более крупные суммы в обороте у компании, тем более надежный и дорогой сертификат SSL следует выбирать.
Платные SSL выдаются авторитетными центрами сертификации.
В их числе:
- Symantec,
- Norton,
- Comodo,
- Trustwave,
- Thawte.
Почему все иностранные? Суть в том, что и все популярные веб-браузеры разрабатываются в зарубежных странах. Поэтому и сертификаты в браузерах применяются свои.
С проверкой домена
Сертификат типа DV (Domain Validation — валидация домена) переназначен для того, чтобы пользователь мог быть уверен, что попадает именно на заявленный сайт, а не на фишинговую копию.
На скриншоте выше сертификат с валидацией домена.
С проверкой компании
Сертификат OV (Organization Validation – валидация организации) подтверждает посещение сайта по правильному домену и что сайт точно принадлежит заявленной компании или организации.
С расширенной проверкой
Сертификат EV (Extendet Validation – расширенная валидация). Такие сертификаты осуществляют проверку как по перечисленным выше параметрам, так и дополнительные тесты, в том числе периодические.
Сертификация EV обозначается в адресной строке замочком, где рядом видно название компании.
Такой сертификат требуется в случаях, когда необходимо максимальная защита клиентских данных. Например, в онлайн-банках.
Варианты написания серверного редиректа для HTTPS
Мне удалось найти семь основных вариантов, которые используют для настройки редиректа для HTTPS протокола:
Вариант 1
PHP
RewriteCond %{HTTPS} =off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
1 |
RewriteCond%{HTTPS}=off RewriteRule(.*)https//%{HTTP_HOST}%{REQUEST_URI} |
Вариант 2
PHP
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI}
1 |
RewriteCond%{SERVER_PORT}!^443$ RewriteRule.*https//%{SERVER_NAME}%{REQUEST_URI} |
Вариант 3
PHP
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}
1 |
RewriteCond%{ENVHTTPS}!on RewriteRule^(.*)$https//%{HTTP_HOST}%{REQUEST_URI} |
Вариант 4
PHP
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1
1 |
RewriteCond%{HTTPX-HTTPS}!1 RewriteRule^(.*)$https//%{HTTP_HOST}/$1 |
Вариант 5
PHP
RewriteCond %{HTTP:CF-Visitor} ‘»scheme»:»http»‘
RewriteRule ^(.*)$ https://www.site.ru/$1
1 |
RewriteCond%{HTTPCF-Visitor}'»scheme»:»http»‘ RewriteRule^(.*)$https//www.site.ru/$1 |
Вариант 6
PHP
RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI}
1 |
RewriteCond%{HTTPX-Forwarded-Protocol}!=https RewriteRule.*https//%{SERVER_NAME}%{REQUEST_URI} |
Вариант 7
PHP
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
1 |
RewriteCond%{HTTPX-Forwarded-Proto}!https RewriteCond%{HTTPS}off RewriteRule^https//%{HTTP_HOST}%{REQUEST_URI} |
Вариант 8
PHP
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}
1 |
RewriteEngineOn RewriteCond%{HTTPS}off RewriteCond%{HTTPX-Forwarded-Proto}!https RewriteRule^(.*)$https//%{HTTP_HOST}%{REQUEST_URI} |
После вставки одного из этих вариантов в файл .htaccess, сохраняете изменения.
В чем различия между http и https?
Теперь перейдем к основному вопросу: в чем заключается главная разница между http и https? По ранее описанным особенностям протоколов можно понять, какие между ними отличия. Но если посмотреть более пристально, то можно понять, что есть и другие отличительные черты.
- Каждый из протоколов функционирует при помощи специальных портов. Но для работы http используется порт 80, а для https – 443.
- С учетом того, как работает https, мы ранее сделали вывод, что применяемое шифрование данных надежно защищает их от злоумышленников. Для их расшифровки используются специальные ключи, хранящиеся на сервере. Для http это не характерно.
- Защищенное соединение гарантирует полную сохранность данных. Даже если в них будут внесены незначительные коррективы, система моментально их зафиксирует.
- Протокол безопасности предоставляет аутентификацию. То есть, пользователь может быть уверен в том, что попадет именно на тот ресурс, который ищет. Такой подход помогает предотвратить любые посторонние вмешательства.
Есть еще несколько важных моментов, о которых нужно знать. Понимая, что означает https в адресе сайта, вы можете быть полностью уверенными в безопасном подключении к серверу. Но такой протокол «тянет» определенную часть ресурсов с этого самого сервера, поэтому загрузка сайта может несколько замедлиться.
На заметку. Если сайт использует http, то при перенаправлении на него поисковая система выдает уведомление о небезопасном подключении. Продолжать соединение или прервать его – это уже на ваше усмотрение.
Нужно ли переходить на HTTPS?
Если ваш сайт содержит информацию, которая быть надежно защищена, то переходить на безопасный протокол нужно обязательно. В противном случае в любой момент важные данные могут быть украдены и использованы в мошеннических целях. Но будьте готовы к тому, что за переход на https вам придется вносить дополнительную плату, если выберете платный SSL-сертификат. А также оплачивать услуги программиста фрилансера от 1000 до 3000 рублей.
При создании новых ресурсов лучше сразу подключать защищенный протокол, поскольку, как утверждают эксперты, в будущем преимущество будет отдаваться именно им. Например, в браузерах такие сайты будут помечены значками, что повысит их посещаемость.
Таким образом, http и https – это понятия во многом схожие, но между ними есть принципиальная разница. Зная, в чем она заключается, каждый сайтовладелец сможет выбрать для себя оптимальный вариант.
HTTP и HTTPS: основы
Как для пользователя, так и для владельца сайта хорошее онлайн-взаимодействие обычно подразумевает качественное шифрование данных. Чтобы разобраться, почему Google отдает предпочтение этому элементу, рассмотрим основные различия между протоколами HTTP и HTTPS.
HTTP (HyperText Transfer Protocol)
HTTP («протокол передачи гипертекста») — это система передачи и получения информации в интернете. HTTP является протоколом прикладного уровня, то есть, по сути, его интересует в первую очередь то, как информация передается пользователю, при этом ему безразлично, как данные попадают из пункта А в пункт Б.
За один год Uber потерял из-за мобильного фрода 100 млн $
Рассказываем, как мошенники убивают рекламные бюджеты и как защитить ваше приложение.
Спецпроект
HTTP является протоколом «без сохранения состояния», то есть он не хранит никакой информации о предыдущей сессии пользователя. Преимущество такого протокола, который не запоминает состояние, заключается в том, что требуется посылать меньше данных, соответственно, повышается скорость.
Когда целесообразно использование HTTP?
HTTP чаще всего применяется для доступа к HTML-страницам
При этом важно учитывать, что с помощью доступа к HTTP можно задействовать и другие ресурсы. Именно так создавали свои сайты те компании, которые не были связаны с конфиденциальной информацией (например, с данными о платежных картах)
HTTPS (Secure HyperText Transfer Protocol)
Протокол HTTPS, то есть «безопасный HTTP», был разработан для авторизации и защищенных транзакциях. Обмен конфиденциальной информацией должен быть безопасным, чтобы предотвратить несанкционированный доступ, именно для этого и нужен HTTPS. Во многих отношениях HTTPS идентичен HTTP. В обоих протоколах клиент (например, ваш браузер) устанавливает соединение с сервером через стандартный порт. Однако HTTPS обеспечивает дополнительный уровень защиты, поскольку применяет криптографический протокол SSL при обмене данными.
С технической точки зрения есть еще одно различие протоколов: в отличие от HTTP, для HTTPS по умолчанию используется 443 TCP-порт, т.е. протоколы HTTP и HTTPS используют два разных порта для коммуникации.
HTTPS работает совместно с криптографическим протоколом Secure Sockets Layer (SSL). Вместе они обеспечивают надежную передачу данных, и именно это отличие от HTTP учитывает Google.
Обратите внимание: протоколу HTTP важно ЧТО передается, то есть сохраняется целостность данных, но сами данные могут оказаться под угрозой перехвата. Для SSL важно КАК передаются данные, при этом безразличен вид содержания, но надежен процесс передачи. HTTPS — это HTTP, обернутый в SSL
Вот почему HTTPS действительно сочетает в себе лучшее: с одной стороны, он заботится о том, как пользователь видит данные, с другой стороны, обеспечивает дополнительный уровень защиты при передаче данных
HTTPS — это HTTP, обернутый в SSL. Вот почему HTTPS действительно сочетает в себе лучшее: с одной стороны, он заботится о том, как пользователь видит данные, с другой стороны, обеспечивает дополнительный уровень защиты при передаче данных.
Примечание: HTTPS и SSLчасто используются как взаимозаменяемые термины, но это неверно. HTTPS безопасен потому, что использует SSL для защищенного обмена данными.
Как работает
Устанавливая безопасное соединение, ваше устройство и сервер
прибегают к применению секретного ключа для шифрования данных, которыми они
будут обмениваться. Для очередного сеанса каждый раз выбирается новый секретный
ключ. Его нереально перехватить и подобрать, так как он представляет собой
одноразовое стозначное число, шифрующее связь между браузером пользователя и
сервером ресурса.
На первый взгляд кажется, что у этой системы нет изъянов. Но
не все так просто – для обеспечения абсолютно безопасного соединения вам нужны
гарантии, что участник сети, с которым вы устанавливаете соединение, не
является злоумышленником. А гарантировать это на сто процентов не может никто.
13 популярных ошибок при переходе сайта на https
Пишу самые популярные моменты, которые знаю из своего опыта или опыта коллег:
- Сделать 302 редирект вместо 301 для склейки версий http с https;
- Сделать редирект всех внутренних страниц на главную;
- Допустить цикличные редиректы;
- Забыл, что твой сайт без www, но склеить с https://www.site.ru;
- Забыл прописать новый путь для sitemap.xml;
- Пропустил этап с заменой абсолютных ссылок;
- Не изменил урлы в скриптах и медиа-контенте;
- В карте сайта указаны урлы на версию с http;
- Описался при наборе домена при получении сертификата;
- Может сломаться 1С, если забыли обновить данные;
- Сайт интегрирован с различными API и вы забыли изменить адреса;
- Косяки с rel=”canonical” на старые страницы;
- Не очистил кэш и начал сам себе выдумывать проблемы.
А с какими косяками вы сталкивались?
Чем отличается HTTPS от HTTP
Чтобы разобраться этой теме, придется сделать ряд терминологических расшифровок и даже сделать небольшой экскурс в историю становления и развития всемирной сети интернет.
Чтобы не упустить нить мысли, рекомендуем прочитать все пункты внимательно, не перескакивая, иначе будет нарушена логика.
- Еще в далеком 1994-ом году разработчики компании Netscape Communications позаботились созданием безопасной среды коммуникаций для пользователя браузера Netscape Navigator и придумали защищенный протокол обмена данными HTTPS при помощи криптографического протокола SSL.
- К сожалению, в результате «Войны браузеров» поистине замечательный веб-обозреватель, во многом опередивший время, был повержен могуществом маркетологов корпорации Microsoft. В результате чего компания Netscape обанкротилась, а браузер Netscape Navigator перестал обновляться.
- Наступила эра глобализма браузера Internet Explorer.
- Hyper Text Transfer Protocol переводится как «трансферный протокол гипертекста» или «протокол трансфера внутри гипертекста». Говоря простыми словами – протокол передачи данных между гипертекстовыми документами.
- В данном контексте под протоколом следует понимать некий набор правил функционирования сетевого интерфейса.
- Под интерфейсом помается некая аппаратно-программная прослойка между функциональными единицами всемирной сети.
- SSL – Secure Sockets Layer переводится как «слой защищенных сокетов». Речь идет о алгоритме передачи данных между сетевыми интерфейсами, основанном на криптографическом шифровании.
- Правила обмена данными шифруются криптографическим образом для обеспечения невозможности третьих сторон получить доступ к передаваемым данным.
Если бы в свое время компания Netscape Communications не пала жертвой Войны Браузеров, мы бы имели безопасный протокол HTTPS внедренным уже двадцать лет назад.
Не углубляясь в тонкости искусства программирования, защищенный протокол передачи данных HTTPS – это самый обычный открытый протокол HTTP, но, правила и данные в этом случае шифруются посредством сертификации SSL.
HTTPS – способ обмена данными на базе открытого протокола HTTP интегрированного в слои криптографического протокола SSL.
В результате этого блокируется несанкционированный доступ к транслируемой информации.
HTTPS – это не есть какой-то новый или отдельный протокол.
Это HTTP, в котором защищенность от внешнего считывания достигается за счет передачи данных по шифрованным каналам или слоям криптографического протокола SSL.
Применение
HTTPS используется для обеспечения конфиденциальности в процессе обмена данными между документами или клиентами сети гипертекстовых документов.
Изначально защищенный протокол разрабатывался конкретно для защиты персональных данных пользователей веб-браузеров. В общем плане может использоваться для шифрования любых сетевых трансферов по глобальной или локальной сети.
В практическом смысле применение HTTPS целесообразно только в случаях, когда между субъектами обмена передаются сведения, которые не должны стать публичным достоянием.
К примеру, нет смысла тратить деньги на обеспечения шифрования общедоступной информации, которую можно свободно найти на каждом сайте в интернете.
Для каких интернет-проектов протокол HTTPS необходим?
Для проектов, в процессе функционирования которых по сети проходят персональные или коммерческие данные пользователей.
Информационно-тематическому блогу, автор которого занимается исключительно размещением статей для публичного чтения, шифрованный протокол HTTPS не обязателен.
Вспомним историю, компания Netscape Communications создавала HTTPS для защиты конфиденциальности пользователей своего браузера Netscape Navigator.
Как подключить http/2
Если вы не знаете, переходить на протокол HTTP/2.0 или нет, просмотрите логи посещаемости вашего сайта. Наверняка большинство пользователей уже пользуются браузерами, поддерживающими новый протокол.
Нужно брать во внимание еще и особенности вашего сайта. Если у вас большой мобильный трафик, значит переводить ресурс на http/2 нужно немедленно, потому что на мобильных устройствах его преимущества проявляются более выражено
Но обязательно посмотрите, с каких именно браузеров на сайт заходят пользователи со смартфонов или планшетов. Многие старые браузеры не поддерживают протокол.
Для подключения HTTP/2 нет необходимости вносить какие-либо изменения непосредственно на ресурсе. URL страниц, ссылки, разметки, данные для Яндекс.Вебмастера и Google Search Console – все остается без изменений.
Протокол подключается на отдающем данные сервере, то есть, сервере хостера. Если у вас внешний хостинг, скорее всего страницы сайта передаются на http/2 для всех браузеров.
В случае с собственным виртуальным или выделенным сервером,
поддержку протокола необходимо внедрить на уровне модуля к серверу Nginx или
Apache.
Nginx
Протокол поддерживается в версиях сервера от 1.9.5 и новее, так что обязательно обновите устаревший Nginx. Далее запустите файл, расположенный по пути /etc/nginx/nginx.conf. Найдите секцию Сервер со строкой:
Поменяйте ее на
Сохраните изменения и перезапустите сервер при помощи
команды:
Apache
Для подключения протокола http/2 вам понадобится версия сервера от 2.4.17 и новее. Если у вас устаревшая версия Apache, обновите его и подключите mod http2.
Затем откройте файл apache.conf и добавьте в него следующие команды:
Далее остается лишь перезапустить сервер. Все готово.
Если вы хотите проверить, поддерживается ли HTTP/2, скачайте специальное расширение для Chrome или Firefox. Можно воспользоваться и сервисом проверки скорости Айри. Если протокол поддерживается, в результатах проверки отобразится соответствующая зелена надпись.
Протокол https и в чем разница между https и http
HTTPS – это безопасный протокол передачи данных,
использующий криптографическое шифрование. Сайты, применяющие данный вид
протокола, имеют сертификацию и грант доверия для поисковых систем.
Основные различия между https и http:
- безопасный протокол https является расширением основного протокола http, но никак не отдельной единицей;
- передача данных посредством безопасного протокола https защищена шифрованием;
- использование различных портов: 80 порт для http, 443 порт для https.
Благодаря преимуществам использования
безопасного пути передачи личных данных, сейчас проводится массовый переход на
сайты с поддержкой https.
HTTP 1.1 — что это за протокол?
HTTP (англ. «протокол передачи гипертекста») — сетевой протокол верхнего уровня для передачи гипертекстовых и произвольных данных в интернете.
При помощи HTTP браузер получает данные от веб-серверов и может отображать их в приемлемом и понятном для интернет-пользователей виде. Точно также происходит и обратный процесс — отправку пользовательских данных обратно, на сервер (например, при регистрации).
Контент отправляемый с сервера и на сервер может быть представлен в любом виде: рисунков, файлов, документов, ссылок и кода — в любом случае, именно благодаря HTTP люди могут пользоваться интернетом и загружать в браузере сотни веб-страниц.
Актуальная версия протокола — 1.1. Ее описание находится в спецификации RFC.
HTTP используется в клиент-серверной инфраструктуре передачи данных. Как это работает? Приложение на стороне «клиент» формирует запрос для обработки на стороне «сервер», после чего ответ отправляется обратно «клиенту». Затем «клиент» может инициировать дополнительные запросы, получать новые ответы. И так далее.
Наиболее распространенное «клиентское» приложение это веб-браузер через который осуществляется доступ к веб-ресурсам. С развитием мобильных технологий к браузерам добавились еще мобильные приложения на разнообразных смартфонах и планшетах. Причем серверная сторона современных многопрофильных приложений может одновременно обрабатывать данные и из браузера, и со смартфона. Все это через протокол HTTP.
Более того, HTTP часто выступает как протокол-транспорт для трансфера других прикладных протоколов и их API: WebDAV, XML-RPC, REST, SOAP. Ну а данные передаваемые по API могут иметь самый разный формат: XML, JSON и другие.
Как передаются эти данные? Чаще всего по TCP/IP-соединению: приложение-клиент по умолчанию использует TCP-порт 80, а сервер может использовать любой другой, но обычно это тоже 80 порт.
Объект манипуляций в HTTP это ресурс, указываемый в URI запроса клиентского приложения, чтобы корректно идентифицировать «что вообще нужно». Обычно это файлы, данные или логические объекты, которые хранятся на сервере. При этом в запросе можно указать, как именно представить одни и те же данные: какой выбрать формат, кодировку, язык. Такая «фича» позволяет обмениваться не только гипертекстом, но и двоичными данными.
Второй особенностью HTTP является отсутствие сохранения состояния между последовательными парами «запрос-ответ». Но это не проблема, потому что компоненты приложений на клиентской или серверной стороне само могут хранить информацию о состоянии последних запросов и ответов. На стороне клиента такая информация называется cookies («куки»), на стороне сервера — sessions («сессии»).
При этом для клиентского браузера не проблема следить за задержкой ответа сервера, а для сервера — хранить заголовки последних запросов и IP-адреса клиентов. Но, еще раз подчеркну, сам протокол об этом ничего не знает — он только передает данные.
Принимать участие в передаче данных могут и посредники (прокси-сервера), для того чтобы отличить прокси от конечных серверов (т.н. «исходный сервер»).
Самое волшебство начинается, когда одна и та же программа (клиентская или серверная) может выполнять функции посредник, клиента, сервера — в зависимости от задач.
Возможны ли проблемы с точки зрения SEO при переходе на HTTPS?
Как и в случае других базовых изменений URL-адресов и миграции сайтов, возможно временное снижение позиций в поисковой выдаче. При переходе на HTTPS практически не возникает никаких проблем, особенно с точки зрения SEO. Но неправильное внедрение защищенного соединения может навредить вашему сайту и привести к потере трафика.
Этапы перехода
Ниже приведены официальные рекомендации Google о том, как правильно сменить протокол http на https:
- Определитесь, какой тип SSL-сертификата вам нужен.
- Используйте 2048-разрядные сертификаты ключей для создания запроса на подпись сертификата (CSR) на своем сервере.
- Используйте относительные URL-адреса для ресурсов, которые находятся на одном защищенном домене.
- Добавьте HTTP-редирект 301 на HTTPS-страницы (mod_rewrite является стандартной практикой).
- Обновите файл robots.txt, чтобы разрешить сканирование HTTPS-страниц.
- Убедитесь, что ваш сайт возвращает правильный код статуса HTTP.
- Получите и настройте необходимые сертификаты TLS на вашем сервере.
Дополнительная информация с форума поддержки Google:
Избегайте нерелевантных редиректов с протокола http на https
Не перенаправляйте несколько старых URL-адресов к одной точке назначения, например к домашней странице нового сайта. Это может запутать пользователей, а также рассматриваться как некритическая ошибка 404. Но если на новой отдельной странице есть контент, ранее размещавшийся на нескольких страницах, то такое перенаправление допустимо.
Предоставьте ошибки для удаленного или объединенного контента
Для контента, который присутствует на старом сайте, но не будет перенесен на новый сайт, убедитесь, что соответствующие URL-адреса корректно возвращают код ошибки HTTP 404 или 410. Вы можете вернуть код ошибки для исходного URL-адреса в панели конфигурации нового сайта или создать редирект для нового целевого URL-адреса и вернуть код ошибки HTTP.
Проверьте правильность настроек Google Search Console
После перехода на HTTPS добавьте URL-адреса в Search Console. Убедитесь, что в аккаунте Search Console указан, как старый, так и новый сайт. Обязательно проверьте все варианты как исходного, так и целевого сайтов. Например, нужно проверить версии www.example.com и example.com, а также включить как HTTPS, так и HTTP-версию сайта, если используются URL-адреса с HTTPS. Сделайте это как для исходного, так и для целевого сайта.
Преимущества
Использование протокола HTTPS сделает ваш сайт более безопасным, и Google активно продвигает эту политику.
Пожалуйста, опубликуйте свои комментарии по текущей теме статьи. За комментарии, лайки, дизлайки, отклики, подписки огромное вам спасибо!
Пожалуйста, оставьте свои отзывы по текущей теме статьи. Мы очень благодарим вас за ваши комментарии, дизлайки, подписки, отклики, лайки!
Вадим Дворниковавтор-переводчик статьи «HTTP vs HTTPS and SEO HTTPS Chrome Warning Starting in October 2017»
Рекомендации по использованию HTTPS
Используйте надежные сертификаты безопасности
Если вы решили использовать на своем сайте протокол HTTPS, вам нужно получить сертификат безопасности. Его выдает центр сертификации, который проверяет, действительно ли указанный веб-адрес принадлежит вашей организации. Таким образом обеспечивается защита посетителей от атак посредника. Чтобы обеспечить высокий уровень защиты, выберите сертификат с 2048-битным ключом. Если вы уже используете сертификат с менее надежным ключом (1024-битным), замените его на 2048-битный. При выборе сертификата следуйте изложенным ниже рекомендациям.
- Обратитесь в надежный центр сертификации, который может предоставить вам техническую поддержку.
- Определите тип сертификата, который вам больше подойдет:
- Одиночный сертификат для одного защищенного ресурса ().
- Многодоменный сертификат для нескольких заранее известных защищенных ресурсов (например, ).
- Сертификат-шаблон для защищенного ресурса, использующего динамические субдомены (например, ).
Следите за тем, чтобы HTTPS-страницы можно было сканировать и индексировать
- Чтобы проверять, могут ли страницы быть просканированы, пользуйтесь инструментом проверки URL.
- Не блокируйте сканирование своего HTTPS-сайта с помощью файла robots.txt.
- Не размещайте на HTTPS-страницах теги .
Используйте технологию HSTS
На сайтах, использующих протокол HTTPS, рекомендуется применять технологию HSTS (HTTP Strict Transport Security). В этом случае браузер будет запрашивать страницы HTTPS, даже если пользователь введет в адресной строке, а Google будет показывать в результатах поиска только защищенные URL. Все это делает вероятность показа незащищенного контента минимальной.
Если вам нужно использовать HSTS, проверьте, поддерживает ли ваш веб-сервер эту технологию, и не забудьте включить ее в настройках сервера.
Технология HSTS повышает уровень безопасности, но усложняет процедуру отката. Поэтому мы рекомендуем включать ее следующим образом:
- Выполните переход на HTTPS, не включая HSTS.
- Активируйте отправку заголовков HSTS с минимальным значением параметра . Начните отслеживать объем трафика пользователей и других клиентов, а также эффективность зависимых объектов, например объявлений.
- Постепенно увеличивайте значение в настройках HSTS.
- Если HSTS не затрудняет пользователям и поисковым системам просмотр веб-страниц, то сайт можно добавить в список предварительной загрузки HSTS, используемый большинством популярных браузеров. Это позволяет повысить безопасность и увеличить скорость загрузки страниц.
Распространенные проблемы
Ниже перечислены некоторые проблемы, которые могут возникнуть при использовании защиты TLS, и способы их устранения.
Распространенные ошибки и их устранение | |
---|---|
Просроченные сертификаты | Вовремя обновляйте сертификаты. |
В сертификате неправильно указано название сайта. | Убедитесь, что вы получили сертификат для всех имен хостов, которые используются на вашем сайте. Например, если в сертификате указано только имя , посетитель, который попытается перейти на (без префикса ), не попадет туда из-за несоответствия сертификата. |
Не поддерживается функция (Server name indication, указание имени сервера) | Ваш веб-сервер должен поддерживать SNI. Также рекомендуйте посетителям использовать браузеры, которые работают с этой функцией (это все ). Если вам нужно обеспечить поддержку устаревших браузеров, используйте выделенный IP-адрес. |
Проблемы со сканированием | Не блокируйте сканирование своего HTTPS-сайта с помощью файла . |
Проблемы с индексированием | По возможности разрешите поисковым системам индексировать ваши страницы. Не используйте тег . |
Устаревшие версии протоколов | Старые версии протоколов уязвимы. Используйте последние версии библиотек TLS и протоколов. |
Совмещение защищенных и незащищенных элементов | В страницы HTTPS можно встраивать только контент, который передается по протоколу HTTPS. |
Разный контент на страницах HTTP и HTTPS. | Содержание на страницах, использующих HTTP и HTTPS, должно быть идентичным. |
Ошибки кода статуса HTTP на страницах с HTTPS | Убедитесь, что ваш сайт возвращает правильный код статуса HTTP. Например, для доступных страниц используется код , а для несуществующих ‒ или . |