Для чего указывается https в полной ссылке
Что такое https: зачем и кому нужен, полная инструкция по переезду на HTTPS
Перед тем как приступить к разбору темы – маленькое отступление: в январе 2017 года 1PS.RU перешел на безопасный протокол https (и вам советует). Также предлагаем и вам помощь в переезде на безопасный протокол. Зачем? Как это сделать? И какой период лучше всего выбрать? Вот об этом сейчас и расскажем.
В статье пойдет речь о переезде сайтов на безопасный протокол HyperText Transfer Protocol Secure (https). Тема на сегодняшний день считается «заезженной» и рассмотрена на многих ресурсах, но от этого она не становится менее актуальной. Читатели нашего блога и постоянные клиенты часто интересуются – как переехать на https? Зачем мне переходить на https? Нужен ли https для моего сайта? Чтобы ответить на все вопросы разом и помочь тем, кто все еще не разобрался в вопросе, мы и написали эту статью.
https – что это?
Для начала давайте разберемся, что такое https? HyperText Transfer Protocol Secure – это безопасный расширенный протокол http с ключом шифрования для передачи данных или гипертекста (термин «гипертекст» был введен в 1965 американский социологом, философом и первооткрывателем в области информационных технологий Нельсоном, Теодором Холмом), примером гипертекста являются веб-страницы – документы HTML.
HTTPS не является отдельным протоколом. Это обычный HTTP, работающий через шифрованные механизмы SSL и TLS.
Что такое SSL и TLS
SSL – (secure sockets layer – уровень защищённых сокетов) – набор правил с более безопасной связью, регламентирующих применение шифровальных (криптографических) преобразований и алгоритмов в информационных процессах.
TLS – (Transport Layer Security – безопасность транспортного уровня) – протокол, основанный на спецификации протокола SSL версии 3.0. Хотя имена SSL и TLS взаимозаменяемы, они всё-таки отличаются, так как каждое описывает другую версию протокола.
С терминологией более менее разобрались, теперь переходим к тому, как заставить наш сайт работать на https.
Для того, чтобы заставить наш веб-сервер принимать и обрабатывать https-соединение, необходимо установить в систему SSL сертификат.
SSL сертификат – уникальная цифровая подпись вашего сайта, основанная на двух типах криптографических ключей – приват и паблик.
Публичный ключ не является секретным и он присутствует в запросе.
Приватный ключ располагается на вашем сервере и должен быть известен только вам.
Помимо паблик ключа, в сертификате содержатся также и другие сведения: версия, серийный номер, время действия сертификата, издатель и другие данные.
В частности, время действия сертификата очень важно. Браузеры не будут считать ключ валидным, если время действия ключа еще не наступило или (что случается чаще) уже закончилось.
Более подробную информацию об уже установленном на сайте сертификате вы можете посмотреть с помощью специальных сервисов, таких как:
https://www.ssllabs.com/ssltest/index.html – он передоставит расширенную техническую информацию о сертификате.
Типы SSL сертификатов по валидации
Что такое SSL сертификат и зачем он нужен вроде разобрались ).
Теперь давайте разберем их типы по валидации:
Самоподписанный сертификат. Оговорюсь сразу, данный вид сертификата НЕ подойдет 99% пользователям. Плюс у данного сертификата один – цена (он совершенно бесплатен). Самый весомый минус – при переходе на ваш сайт из поисковой системы или по любому другому заходу пользователю будут показаны вот такие сообщения:
Вид в адресной строке:
Цена: 0 руб.
Валидация по домену (Domain Validated) – SSL-сертификат, при оформлении которого производится только проверка доменного имени. Также данные сертификаты называют сертификатами начального уровня доверия. Подойдут практически 90% владельцев сайтов. Являются самыми распространенными. Подходят как физическим, так и юридическим лицам. Выдача данного сертификата, как правило, производится в течение суток.
Вид в адресной строке:
Цена: может колебаться от 800 руб./год до 3000 руб./год (хотя эта цифра не предел).
Валидация организации (Organization Validation) – сертификат с повышенной надежностью. При выдаче сертификата производится проверка компании, проверяется не только право владения доменом и принадлежность веб-сайта организации, но и существование компании как таковой. Доступен только юридическим лицам. При выдаче данного сертификата могут быть запрошены следующие документы: свидетельство ИНН/КПП, свидетельство ОГРН, свидетельство о регистрации доменного имени, и.т.д.
Вид в адресной строке:
Цена: может колебаться от 2000 руб./год до 35000 руб./год.
Расширенная валидация (Extended Validation) – сертификат с самым высоким уровнем аутентификации между всеми типами SSL сертификатов. Не подойдет 99% «смертных» из-за своей цены и способа проверки. Предназначен для крупных корпораций. Доступен только юридическим лицам. Зеленая адресная строка браузера отображает название компании и обеспечивает визуальное подтверждение безопасности вашего сайта.
Вид в адресной строке:
Цена: может колебаться от 12000 руб./год до 150000 руб./год.
Еще существует отдельный вид сертификатов, о котором нельзя не сказать – это сертификаты Wildcard. Данный вид сертификата стоит выбрать, если у вас структура сайта представлена в виде поддоменов. Или требуется защита передаваемой информации на субдоменах. На некоторых хостингах данный вид представлен в виде опции.
Цена: может колебаться от 1500 руб./год до 35000 руб./год.
Также для реализации https соединения на некоторых хостингах требуется оплата выделенного IP, цена которого может быть равна
1200 руб./год.
Если у вас возникнут проблемы с установкой или выбором SSL сертификата, вы всегда можете обратиться к своей хостинг-компании или к нам (цена рассчитывается индивидуально).
Теперь давай разберем, для чего вы прочитали 5716 байт предыдущего текста, и ответим на вопрос – для чего нам нужно переходить на https.
Для чего нужно переходить на https?
Причин несколько и все весомые:
Подходим к завершающей части и ответу на вопрос – как корректно переехать на https с минимальными потерями.
Инструкция по переезду на https
User-agent: Yandex
…
Host: https://site.ru
Вот вроде и все. Если сомневаетесь, что справитесь своими силами, обращайтесь к нам. Посмотрим ваш сайт, сориентируем по стоимости и поможем с переездом.
При подготовке материала мы ориентировались на официальные источники Яндекса и Google. Однако, отмечу, что 20 марта 2017 г. в блоге Яндекса была опубликована новая информация по переезду на HTTPS. В связи с этим многим может показаться, будто Яндекс сообщает, о том, что нет необходимости соблюдать пункт №7 данной статьи. В материалах Яндекса это вопрос №4.
Однако обращаем ваше внимание, что в комментариях к этому же материалу Елена Першина (сотрудник компании Яндекс) отвечает Бакалову Игорю: «Редирект лучше настраивать, когда большая часть страниц http-версии будет исключена из поиска», что соответствует рекомендациям из пункту №7 настоящей статьи.
В связи с этим советуем все-таки дождаться, пока изменения вступят в силу, как и написано в пункте №7, т.е. ориентировочное время – 2 недели.
© 1PS.RU, при полном или частичном копировании материала ссылка на первоисточник обязательна.
Руководитель отдела Технического SEO сервиса 1PS.RU
Понравилась статья?
Спасибо, мы старались!
Кстати, вы подписаны на нашу рассылку? Если нет, то самое время познакомиться с Катей.
Сожалеем, что не оправдали ваши ожидания ((
Возможно, вам понравятся другие статьи блога.
355 чел. оценили, средняя оценка 4.9
Пошаговое руководство по самостоятельному продвижению сайта
Как HTTPS обеспечивает безопасность соединения: что должен знать каждый Web-разработчик
Как же все-таки работает HTTPS? Это вопрос, над которым я бился несколько дней в своем рабочем проекте.
Будучи Web-разработчиком, я понимал, что использование HTTPS для защиты пользовательских данных – это очень и очень хорошая идея, но у меня никогда не было кристального понимания, как HTTPS на самом деле устроен.
Как данные защищаются? Как клиент и сервер могут установить безопасное соединение, если кто-то уже прослушивает их канал? Что такое сертификат безопасности и почему я должен кому-то платить, чтобы получить его?
Трубопровод
Перед тем как мы погрузимся в то, как это работает, давайте коротко поговорим о том, почему так важно защищать Интернет-соединения и от чего защищает HTTPS.
Когда браузер делает запрос к Вашему любимому веб-сайту, этот запрос должен пройти через множество различных сетей, любая из которых может быть потенциально использована для прослушивания или для вмешательства в установленное соединение.
С вашего собственного компьютера на другие компьютеры вашей локальной сети, через роутеры и свитчи, через вашего провайдера и через множество других промежуточных провайдеров – огромное количество организаций ретранслирует ваши данные. Если злоумышленник окажется хотя бы в одной из них — у него есть возможность посмотреть, какие данные передаются.
Как правило, запросы передаются посредством обычного HTTP, в котором и запрос клиента, и ответ сервера передаются в открытом виде. И есть множество весомых аргументов, почему HTTP не использует шифрование по умолчанию:
• Для этого требуется больше вычислительных мощностей
• Передается больше данных
• Нельзя использовать кеширование
Но в некоторых случаях, когда по каналу связи передается исключительно важная информация (такая как, пароли или данные кредитных карт), необходимо обеспечить дополнительные меры, предотвращающие прослушивание таких соединений.
Transport Layer Security (TLS)
Сейчас мы собираемся погрузиться в мир криптографии, но нам не потребуется для этого какого-то особенного опыта — мы рассмотрим только самые общие вопросы. Итак, криптография позволяет защитить соединение от потенциальных злоумышленников, которые хотят воздействовать на соединение или просто прослушивать его.
TLS — наследник SSL — это такой протокол, наиболее часто применяемый для обеспечения безопасного HTTP соединения (так называемого HTTPS). TLS расположен на уровень ниже протокола HTTP в модели OSI. Объясняя на пальцах, это означает, что в процессе выполнения запроса сперва происходят все “вещи”, связанные с TLS-соединением и уже потом, все что связано с HTTP-соединением.
TLS – гибридная криптографическая система. Это означает, что она использует несколько криптографических подходов, которые мы и рассмотрим далее:
1) Асиметричное шифрование (криптосистема с открытым ключом) для генерации общего секретного ключа и аутентификации (то есть удостоверения в том, что вы – тот за кого себя выдаете).
2) Симметричное шифрование, использующее секретный ключ для дальнейшего шифрования запросов и ответов.
Криптосистема с открытым ключом
Криптосистема с открытым ключом – это разновидность криптографической системы, когда у каждой стороны есть и открытый, и закрытый ключ, математически связанные между собой. Открытый ключ используется для шифрования текста сообщения в “тарабарщину”, в то время как закрытый ключ используется для дешифрования и получения исходного текста.
С тех пор как сообщение было зашифровано с помощью открытого ключа, оно может быть расшифровано только соответствующим ему закрытым ключом. Ни один из ключей не может выполнять обе функции. Открытый ключ публикуется в открытом доступе без риска подвергнуть систему угрозам, но закрытый ключ не должен попасть к кому-либо, не имеющему прав на дешифровку данных. Итак, мы имеем ключи – открытый и закрытый. Одним из наиболее впечатляющих достоинств ассиметричного шифрования является то, что две стороны, ранее совершенно не знающие друг друга, могут установить защищенное соединение, изначально обмениваясь данными по открытому, незащищенному соединению.
Клиент и сервер используют свои собственные закрытые ключи (каждый – свой) и опубликованный открытый ключ для создания общего секретного ключа на сессию.
Это означает, что если кто-нибудь находится между клиентом и сервером и наблюдает за соединением – он все равно не сможет узнать ни закрытый ключ клиента, ни закрытый ключ сервера, ни секретный ключ сессии.
Как это возможно? Математика!
Алгоритм Ди́ффи — Хе́ллмана
Одним из наиболее распространенных подходов является алгоритм обмена ключами Ди́ффи — Хе́ллмана (DH). Этот алгоритм позволяет клиенту и серверу договориться по поводу общего секретного ключа, без необходимости передачи секретного ключа по соединению. Таким образом, злоумышленники, прослушивающие канал, не смогу определить секретный ключ, даже если они будут перехватывать все пакеты данных без исключения.
Как только произошел обмен ключами по DH-алгоритму, полученный секретный ключ может использоваться для шифрования дальнейшего соединения в рамках данной сессии, используя намного более простое симметричное шифрование.
Немного математики…
Математические функции, лежащие в основе этого алгоритма, имею важную отличительную особенность — они относительно просто вычисляются в прямом направлении, но практически не вычисляются в обратном. Это именно та область, где в игру вступают очень большие простые числа.
Пусть Алиса и Боб – две стороны, осуществляющие обмен ключами по DH-алгоритму. Сперва они договариваются о некотором основании root (обычно маленьком числе, таком как 2,3 или 5 ) и об очень большом простом числе prime (больше чем 300 цифр). Оба значения пересылаются в открытом виде по каналу связи, без угрозы компрометировать соединение.
Напомним, что и у Алисы, и у Боба есть собственные закрытые ключи (из более чем 100 цифр), которые никогда не передаются по каналам связи.
По каналу связи же передается смесь mixture, полученная из закрытых ключей, а также значений prime и root.
Таким образом:
Alice’s mixture = (root ^ Alice’s Secret) % prime
Bob’s mixture = (root ^ Bob’s Secret) % prime
где % — остаток от деления
Таким образом, Алиса создает свою смесь mixture на основе утвержденных значений констант (root и prime), Боб делает то же самое. Как только они получили значения mixture друг друга, они производят дополнительные математические операции для получения закрытого ключа сессии. А именно:
Вычисления Алисы
(Bob’s mixture ^ Alice’s Secret) % prime
Вычисления Боба
(Alice’s mixture ^ Bob’s Secret) % prime
Результатом этих операций является одно и то же число, как для Алисы, так и для Боба, и это число и становится закрытым ключом на данную сессию. Обратите внимание, что ни одна из сторон не должна была пересылать свой закрытый ключ по каналу связи, и полученный секретный ключ так же не передавался по открытому соединению. Великолепно!
Для тех, кто меньше подкован в математическом плане, Wikipedia дает прекрасную картинку, объясняющую данный процесс на примере смешивания цветов:
Обратите внимание как начальный цвет (желтый) в итоге превращается в один и тот же “смешанный” цвет и у Боба, и у Алисы. Единственное, что передается по открытому каналу связи так это наполовину смешанные цвета, на самом деле бессмысленные для любого прослушивающего канал связи.
Симметричное шифрование
Обмен ключами происходит всего один раз за сессию, во время установления соединения. Когда же стороны уже договорились о секретном ключе, клиент-серверное взаимодействие происходит с помощью симметричного шифрования, которое намного эффективнее для передачи информации, поскольку не требуется дополнительные издержки на подтверждения.
Используя секретный ключ, полученный ранее, а также договорившись по поводу режима шифрования, клиент и сервер могут безопасно обмениваться данными, шифруя и дешифруя сообщения, полученные друг от друга с использованием секретного ключа. Злоумышленник, подключившийся каналу, будет видеть лишь “мусор”, гуляющий по сети взад-вперед.
Аутентификация
Алгоритм Диффи-Хеллмана позволяет двум сторонам получить закрытый секретный ключ. Но откуда обе стороны могут уверены, что разговаривают действительно друг с другом? Мы еще не говорили об аутентификации.
Что если я позвоню своему приятелю, мы осуществим DH-обмен ключами, но вдруг окажется, что мой звонок был перехвачен и на самом деле я общался с кем-то другим?! Я по прежнему смогу безопасно общаться с этим человеком – никто больше не сможет нас прослушать – но это будет совсем не тот, с кем я думаю, что общаюсь. Это не слишком безопасно!
Для решения проблемы аутентификации, нам нужна Инфраструктура открытых ключей, позволяющая быть уверенным, что субъекты являются теми за кого себя выдают. Эта инфраструктура создана для создания, управления, распространения и отзыва цифровых сертификатов. Сертификаты – это те раздражающие штуки, за которые нужно платить, чтобы сайт работал по HTTPS.
Но, на самом деле, что это за сертификат, и как он предоставляет нам безопасность?
Сертификаты
В самом грубом приближении, цифровой сертификат – это файл, использующий электронной-цифровую подпись (подробнее об этом через минуту) и связывающий открытый (публичный) ключ компьютера с его принадлежностью. Цифровая подпись на сертификате означает, что некто удостоверяет тот факт, что данный открытый ключ принадлежит определенному лицу или организации.
По сути, сертификаты связывают доменные имена с определенным публичным ключом. Это предотвращает возможность того, что злоумышленник предоставит свой публичный ключ, выдавая себя за сервер, к которому обращается клиент.
В примере с телефоном, приведенном выше, хакер может попытаться предъявить мне свой публичный ключ, выдавая себя за моего друга – но подпись на его сертификате не будет принадлежать тому, кому я доверяю.
Чтобы сертификату доверял любой веб-браузер, он должен быть подписан аккредитованным удостоверяющим центром (центром сертификации, Certificate Authority, CA). CA – это компании, выполняющие ручную проверку, того что лицо, пытающееся получить сертификат, удовлетворяет следующим двум условиям:
1. является реально существующим;
2. имеет доступ к домену, сертификат для которого оно пытается получить.
Как только CA удостоверяется в том, что заявитель – реальный и он реально контролирует домен, CA подписывает сертификат для этого сайта, по сути, устанавливая штамп подтверждения на том факте, что публичный ключ сайта действительно принадлежит ему и ему можно доверять.
В ваш браузер уже изначально предзагружен список аккредитованных CA. Если сервер возвращает сертификат, не подписанный аккредитованным CA, то появится большое красное предупреждение. В противном случае, каждый мог бы подписывать фиктивные сертификаты.
Так что даже если хакер взял открытый ключ своего сервера и сгенерировал цифровой сертификат, подтверждающий что этот публичный ключ, ассоциирован с сайтом facebook.com, браузер не поверит в это, поскольку сертификат не подписан аккредитованным CA.
Прочие вещи которые нужно знать о сертификатах
Расширенная валидация
В дополнение к обычным X.509 сертификатам, существуют Extended validation сертификаты, обеспечивающие более высокий уровень доверия. Выдавая такой сертификат, CA совершает еще больше проверок в отношении лица, получающего сертификат (обычно используя паспортные данные или счета).
При получение такого сертификата, браузер отображает в адресной строке зеленую плашку, в дополнение к обычной иконке с замочком.
Обслуживание множества веб-сайтов на одном сервере
Поскольку обмен данными по протоколу TLS происходит еще до начала HTTP соединения, могут возникать проблемы в случае, если несколько веб-сайтов расположены на одном и том же веб-сервере, по тому же IP-адресу. Роутинг виртуальных хостов осуществляется веб-сервером, но TLS-соединение возникает еще раньше. Единый сертификат на весь сервер будет использоваться при запросе к любому сайту, расположенному на сервере, что может вызвать проблемы на серверах с множеством хостов.
Если вы пользуетесь услугами веб-хостинга, то скорее всего вам потребуется приобрести выделенный IP-адрес, для того чтобы вы могли использовать у себя HTTPS. В противном случае вам придется постоянно получать новые сертификаты (и верифицировать их) при каждом обновлении сайта.
По этой теме много данных есть в википедии, есть курс на Coursera. Отдельное спасибо ребятам из чата на security.stackexchange.com, которые отвечали на мои вопросы сегодня утром.
1)Спасибо хабраюзеру wowkin за отличную ссылку по теме (видео переведено и озвученно хабраюзером freetonik):
2) По результатам развернувшейся в коменатариях дискуссии (спасибо за участие хабраюзерам a5b, Foggy4 и Allen) дополняю основную статью следующей информацией:
По данным netcraft на базе свежего SSL survey (2.4 млн SSL сайтов, июнь 2013), большинство SSL соединений не используют Perfect forward secrecy алгоритмы: news.netcraft.com/archives/2013/06/25/ssl-intercepted-today-decrypted-tomorrow.html
Особенно ситуация плоха в случае с IE (даже 10 версии), который поддерживает Диффи-Хеллмана только на эллиптических кривых (RSA и ECDSA сертификаты), либо классический Диффи-Хеллман с более редкими сертификатами DSS (DSA).
По подсчетам netcraft 99,7 % соединений с IE и по 66% — с Chrome, Opera и Firefox не будут использовать Диффи-Хеллмана.
На Hacker News в обсуждении это тоже заметили.
Also (and I made the same mistake in my talk. ), yes, explaining DH is important, but now it kind of sounds like in TLS both sides figure out the master secret using DH (and, in your talk, specifically, regular DH, not EC-based DH), when in reality that depends on the ciphersuite, and the vast majority of TLS connections don’t work that way. From what I understand to be most TLS configurations in the wild, the pre-master secret is encrypted using the server’s public key. (RFC 5246: 7.4.7.1, 8.1.1)
Протокол https: что это такое и зачем он нужен
Аббревиатура HTTP/HTTPS, которая стоит перед всеми адресами сайтов в интернете, означает, в переводе, протокол передачи гипертекста. Это набор правил и транспорт для обмена данными между компьютером-клиентом и сервером, который позволяет им понимать запросы и ответы друг друга.
Что значит https, сравнение с версией http
Первая версия http была нужна, чтобы в ответ на запрос компьютера сервер мог понять команду и загрузить сайт либо выполнить другое действие: войти в личный кабинет, провести оплату, загрузить комментарий или открыть ссылку. Отличие нового варианта https в последней букве: “s” значит “secure”, безопасность.
Безопасность в https
В техническом плане разница в дополнительном шифровании. В HTTPS надстроен протокол SSL/TLS, который кодирует все данные, а ключ известен только компьютеру пользователя и серверу. При этом длина ключа может быть от 40 до 256 бит и сам он меняется при каждом новом соединении.
Зачем нужен https пользователю и владельцу сайта
Первое назначение HTTPS — безопасность данных. Шифрование и подтверждение подлинности адресата позволяют отправлять пароли и личные данные без опасений стать жертвой мошенничества. Сейчас такой подход становится нормой в Интернете, и это приводит к ещё одной тенденции.
Поисковые системы всё чаще отдают предпочтение защищённым сайтам — это выражается и в специальных значках, которые видны пользователям и предупреждают о небезопасных источниках, и в ранжировании при поиске.
HTTPS и Яндекс
Хотя Яндекс прямо не заявляет о влиянии ssl протокола на ранжирование, они учитывают комплекс показателей, включая безопасность. Такой сайт вызывает большее доверие пользователей и, соответственно, при прочих равных считается предпочтительным при поисковой выдаче.
При переходе на https Яндекс может сохранить ряд накопленной статистики и “веса” сайта, чтобы уменьшить ущерб от смены имени. Для этого обе версии надо объединить в зеркало и сообщить о переадресации в панели Яндекс. Вебмастер.
HTTPS и Google
Гугл уже давно заявляет о предпочтении сайтов с защищённым протоколом. В их браузере (Google Chrome) появляются устрашающие предупреждения при переходе на сайт без https. Чтобы в поисковике индексировалась основная версия сайта с https, нужно добавить её через Google Search Console.
С декабря 2019 года компания планирует пойти ещё дальше: предполагается автоматически блокировать любой смешанный контент. То есть если сайт защищён, но на нём есть отдельные элементы (скрипты, стили, аудио/видео контент) с http, они не будут работать.
Делая выводы, HTTPS протокол — это новая версия системы обмена данными между сервером и компьютером-клиентом. Для пользователя она означает безопасность при отправке своих персональных данных. Для владельца сайта — большее доверие со стороны гостей и лучшее отношение поисковых систем.
Переход на https
Для перевода на https надо в первую очередь получить SSL сертификат. Такую услугу предоставляет ряд сертификационных центров, обычно предлагают на выбор один из 3-х протоколов:
Помимо коммерческих, есть бесплатный сервис по получению сертификатов Let’s Encrypt.
Чтобы облегчить процесс интеграции, лучше заранее проверить, с какими центрами умеет работать хостинг, на котором хранится сайт. Как правило, у провайдеров есть и готовые инструкции по установке сертификата.
Подключение SSL-сертификата Let’s Encrypt на сайт
Порядок подключения бесплатного Let’s Encrypt SSL будет рассмотрен на примере Макхоста.