G|Translate: English EN Français FR Deutsch DE Italiano IT Русский RU Español ES

Как включить HTTPS на сайте?

5/5 - (1 голос)

Существуют два основных протокола передачи данных от сервера к пользователю

http — трафик между ПК пользователя и хостингом не шифруется (враги могут добавить рекламу для показа на Вашем сайте)
https — трафик между ПК пользователя и хостингом шифруется (т.е. например, Ваш провайдер не сможет увидеть, какая информация идет с сайта / на сайт)

Как включить HTTPS на сайте?

Более того, в последнее время поисковые машины начинают отдавать предпочтения сайтам с протоколом https (поднимая сайты в выдаче и считая их более безопасными для пользователя).

HTTPS (англ. HyperText Transfer Protocol Secure) — расширение протокола HTTP, для поддержки шифрования в целях повышения безопасности. Данные в протоколе HTTPS передаются поверх криптографических протоколов SSL или TLS. В отличие от HTTP с TCP-портом 80, для HTTPS по умолчанию используется TCP-порт 443.

Про порты сервера читаем статью

Порты вебсервера и их основная защита

HTTPS не является отдельным протоколом. Это обычный HTTP, работающий через шифрованные транспортные механизмы SSL и TLS. Он обеспечивает защиту от атак, основанных на прослушивании сетевого соединения — от снифферских атак и атак типа man-in-the-middle, при условии, что будут использоваться шифрующие средства и сертификат сервера проверен и ему доверяют.

На сегодня вид в браузере Chrom 64 bit (включен показ полного адреса) сайт на https выглядит вот так — к «замочку» добавлено слово «Надежный».

Как включить HTTPS на сайте?

ВАЖНО: Это именно зашифрованная передача данных от сервера до конечного посетителя, а не показатель безопасности сайта! Сайт может быть взломан, сайт сам по себе может быть сделан мошенниками и прочее — и при этом сайт будет работать по защищенному протоколу https и иметь «зеленый замочек». Поэтому сейчас зеленый цвет замочка остался только в Opera, остальные браузеры показывают его серым цветом.

В результате наших шаманских действий в адресной строке браузера мы увидим https://domen.ru вместо http://domen.ru

Что это такое и что это дает нам и посетителям сайта:

  • это не защищенный от взлома сайт — это зашифрованный обмен данными между посетителем сайта и сервером
    • в зашифрованный трафик провайдер интернета не может вставить свою рекламу
    • посторонние лица не могут сразу получить данные вашего интернет-трафика (при большой необходимости всё конечно можно расшифровать…)
  • это поднятие позиций сайта в выдаче
    • поисковые роботы уже сейчас понижают в выдаче обычные сайты HTTP
    • а если у Вас на сайте HTTP еще и форма обратной связи есть (адрес e-mail передается, т.е. персональные данные) — то вообще «плохой» сайт с точки зрения Яндекса и Google
  • возможность на хостинге включить вторую версию протокола WEB, известную как HTTP/2 (формально протокол может работать и без шифрования — но браузеры поддерживают только вариант с шифрованием)
    • ускорение передачи данных
    • мультиплексирования множества запросов в одном соединении TCP
  • возможность на хостинге включить HSTS

HSTS (англ. HTTP Strict Transport Security) — механизм, принудительно активирующий защищённое соединение через протокол HTTPS. Данная политика безопасности позволяет сразу же устанавливать безопасное соединение вместо использования HTTP-протокола. Механизм использует особый заголовок Strict-Transport-Security для принудительного использования браузером протокола HTTPS даже в случае перехода по ссылкам с явным указанием протокола HTTP (http://)

По умолчанию HTTPS URL использует 443 TCP-порт (для незащищённого HTTP — 80). Чтобы подготовить веб-сервер для обработки https-соединений, администратор должен получить и установить в систему сертификат для этого веб-сервера.

Сертификат состоит из 2 частей (2 ключей) — public и private. Public-часть сертификата используется для шифрования трафика от клиента к серверу в защищённом соединении, private-часть — для расшифровывания полученного от клиента зашифрованного трафика на сервере. После того как пара ключей приватный/публичный сгенерированы, на основе публичного ключа формируется запрос на сертификат в Центр сертификации, в ответ на который ЦС высылает подписанный сертификат. ЦС при подписании проверяет клиента, что позволяет ему гарантировать, что держатель сертификата является тем, за кого себя выдаёт (обычно это платная услуга).

Какие бывают сертификаты SSL для HTTPS?

Зачем вообще нужен какой-то сертификат? Сервер шифрует страницу и отправляет пользователю. Браузер пользователя получает страницу, расшифровывает её и выводит на экран. 

Что бы расшифровать — нужен ключ :) Где его взять? Конечно на сервере. А как доверять этому серверу? Как раз нужен сертификат.

Сертификаты делятся по уровню валидации:

  • самоподписанный сертификат (self-signed)
  • сертификат с подтверждением только доменного имени (Domain Validation — DV)
  • сертификат с подтверждением доменного имени и организации (Organization Validation — OV)
  • сертификат с расширенной проверкой (Extendet Validation — EV)

 

Первый сертификат может выдаваться веб-сервером, т.е. шифрование работать будет — но все браузеры будут выдавать предупреждение (у них нет информации о центре сертификации). Для нормальной работы сайта необходимо оформлять сертификат через специальные центры сертификации — вот эти сертификаты DV, OV и EV.

DV сертификат самый простой. Подтверждение только домена. Подходит только для информационного сайта. Большой минус — мошенники могут использовать фишинговый сайт и этот сайт может официально получить сертификат DV.

ВАЖНО: Совсем не подходит для электронной коммерции — невозможно проверить подлинность компании, которая получили сертификат. Поисковые роботы тоже об этом знают…

OV сертификат — в информационном окне «свойства сертификата» будет указано название компании, которой выдан сертификат.

EV сертификат обеспечивает показ так называемого «green bar» — т.е. подтвержденная организация,  которая владеет этим сертификатом и доменом.

Как включить HTTPS на сайте?

Сертификаты по свойствам:

  • обычный SSL сертификат на один домен
  • сертификат SSL  может быть с указанием Wildcard — т.е. действие распространяется и на основной домен и на поддомены третьего уровня вида info.domen.ru Поддерживается только один уровень поддоменов.

Как включить HTTPS на сайте?

ВАЖНО:  сертификат с поддержкой Wildcard (в отличии от обычного сертификата) создается за более длительный промежуток времени — до 1 часа. Это связано с проверкой DNS хостера.

Еще варианты сертификатов:

  • SGL сертификаты с поддержкой повышения уровня шифрования — для старых браузеров
  • SAN сертификаты — один сертификат на несколько доменов
  • SSL сертификаты поддержкой IDN (Internationalized Domain Name) для защиты домена, в котором используются диакритические знаки алфавита любого языка — если ваш домен принадлежат к национальным доменным зонам .РФ, .УКР и др., то вам нужен SSL сертификат именно данного типа.

Оформляем DV сертификат SSL

Let’s Encrypt — некоммерческий центр сертификации, у которого можно получить бесплатный SSL‑сертификат сроком действия в 90 дней.

Благодаря Let’s Encrypt, у владельцев сайтов появилась возможность совершенно бесплатно и автоматически выпускать SSL-сертификат для своего сайта и перейти на использование защищенного протокола HTTPS.

Для получения такого сертификата необходимо подтвердить факт владения доменом с использованием протокола аутентификации ACME (Automated Certificate Management Environment), согласно которому к веб-серверу, запросившему выпуск сертификата, производится серия запросов для валидации домена. После выполнения этой процедуры клиенту выдается SSL-сертификат и приватный ключ, которые необходимо передать своему веб-серверу для перехода на работу по протоколу HTTPS.

Вот сайт центра сертификации с бесплатными сертификатами SSL — да, они на три месяца, их надо регулярно обновлять (хостер делает это автоматически).

https://letsencrypt.org/ru/

Есть два базовых варианта — через панель управления хостинга или через ручное получение и установку.

Идеальный вариант — если панель управления сайтом имеет поддержку Let’s Encrypt (возможно, потребуется активировать эту опцию). В этом случае компания-хостер будет запрашивать сертификаты от вашего имени, устанавливать и обновлять их автоматически. Ознакомьтесь со списком компаний, поддерживающих интеграцию с Let’s Encrypt. Если ваш хостер в их числе — обратитесь к документации на сайте компании для работы с сертификатами.

Если компания-хостер не поддерживает выпуск сертификатов Let’s Encrypt — оформите запрос в их службу технической поддержки, а мы поможем организовать интеграцию с нашим Центром Сертификации. Как правило, компании идут навстречу предложениям своих клиентов.

Возможно, компания-хостер не заинтересована во взаимодействии с Let’s Encrypt, но позволяет загружать сертификаты вручную. Установите Certbot на ваш компьютер для запуска в ручном режиме. Загрузите специальный файл в папку сайта, чтобы подтвердить факт владения. Certbot создаст сертификат для доменного имени этого сайта, для последующей отправки на web-сервер.

Мы не рекомендуем этот способ из-за его трудоёмкости, а также повторения рутинных действий по перевыпуску сертификата несколько раз в год. Лучшим выходом будет убедить хостера в необходимости интеграции с Let’s Encrypt, или же перейти к другому сервис-провайдеру.

Разные сертификаты SSL для разных сайтов на одном IP-адресе

Традиционно на одном IP-адресе может работать только один HTTPS сайт. Для работы нескольких HTTPS-сайтов с различными сертификатами применяется расширение TLS под названием Server Name Indication (SNI).

Server Name Indication (SNI) — расширение компьютерного протокола TLS, которое позволяет клиентам сообщать имя хоста, с которым он желает соединиться во время процесса «рукопожатия». Это позволяет серверу предоставлять несколько сертификатов на одном IP-адресе и TCP-порту, и, следовательно, позволяет работать нескольким безопасным (HTTPS) сайтам (или другим сервисам поверх TLS) на одном IP-адресе без использования одного и того же сертификата на всех сайтах.

Протокол SSL

SSL (англ. Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, который подразумевает более безопасную связь. Он использует асимметричную криптографию для аутентификации ключей обмена, симметричное шифрование для сохранения конфиденциальности, коды аутентификации сообщений для целостности сообщений. 

SSL изначально разработан компанией Netscape Communications для добавления протокола HTTPS в свой веб-браузер Netscape Navigator. Впоследствии на основании протокола SSL 3.0 был разработан и принят стандарт RFC, получивший имя TLS.

Протокол SSL обеспечивает защищённый обмен данными за счёт двух следующих элементов:

  • Аутентификация
  • Шифрование

SSL использует асимметричную криптографию для аутентификации ключей обмена, симметричный шифр для сохранения конфиденциальности, коды аутентификации сообщений для целостности сообщений.

Протокол SSL предоставляет «безопасный канал», который имеет три основных свойства:

  • Канал является частным. Шифрование используется для всех сообщений после простого диалога, который служит для определения секретного ключа.
  • Канал аутентифицирован. Серверная сторона диалога всегда аутентифицируется, а клиентская делает это опционально.
  • Канал надёжен. Транспортировка сообщений включает в себя проверку целостности.

Преимуществом SSL является то, что он независим от прикладного протокола. Протоколы приложений (HTTP, FTP, TELNET и т. д.) могут работать поверх протокола SSL совершенно прозрачно, то есть SSL может согласовывать алгоритм шифрования и ключ сессии, а также аутентифицировать сервер до того, как приложение примет или передаст первый байт сообщения.

Переадресация с HTTP на HTTPS

В первую очередь осуществляется переадресация сайта на защищенный протокол HTTPS.

Есть несколько вариантов

Настройки сервера хостера

Как включить HTTPS на сайте?

HSTS — (HTTP Strict Transport Security) — механизм, принудительно активирующий защищённое соединение через протокол HTTPS. Данная политика безопасности позволяет сразу же устанавливать безопасное соединение вместо использования HTTP-протокола. Механизм использует особый заголовок Strict-Transport-Security для принудительного использования браузером протокола HTTPS даже в случае перехода по ссылкам с явным указанием протокола HTTP

HTTP2 — вторая крупная версия сетевого протокола HTTP, используемая для доступа к сети

Настройка сервера Apache через файл .htaccess

Переадресация с протокола HTTP на протокол HTTPS реализуется добавлением в файл  следующих директив:

RewriteEngine on
RewriteCond %{HTTP:HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://yourdomain.com/$1 [R=301,L]
SetEnvIf X-Forwarded-Proto https HTTPS=on

где «yourdomain.com» — имя домена, для которого используется сертификат.

Внутренняя переадресация CMS

Например, для WordPress в плагине есть настройки

Как включить HTTPS на сайте?

Проверка корректности HTTPS

Также производится проверка всех ссылок на сайте на предмет явного использования протокола HTTP. При наличии элементов, открывающихся по небезопасному протоколу, соединение будет считаться недоверенным, и информация об этом отобразится в адресной строке.

Проверить страницы сайта можно с помощью следующего сервиса.

При наличии элементов, доступных только по протоколу HTTP, ссылки на них меняются на относительные (к примеру, вместо http://yourdomain.com/content/pic.jpg в коде страницы ссылка должна иметь вид /content/pic.jpg), либо явно указывается использование протокола HTTPS (в таком случае ссылка будет иметь вид https://yourdomain.com/content/pic.jpg«).

Также меняются ссылки для элементов, загружаемых с внешних ресурсов. Например, если на сайте используется скрипт, доступный по адресу http://externaldomain.us/scripts/ad.js, эта ссылка должна быть изменена на //externaldomain.us/scripts/ad.js или https://externaldomain.us/scripts/ad.js. Обратите внимание, что сайт, на котором расположен элемент, также должен иметь валидный SSL-сертификат.

Вносим исправления в ВебМастер после перехода на HTTPS

С учетом www и https сложилась такая ситуация с видами протокола:

  • http://www.domen.ru
  • http://domen.ru
  • https://www.domen.ru
  • https://domen.ru

 

Домен один — но с точки зрения поисковых машин — это 4 разные сайта….

Google.Webmaster сделал проще всего — он добавил регистрацию именно домена :)

Как включить HTTPS на сайте?

Выбираете доменный ресурс, добавляете именно домен domen.ru, Google просит добавить строку в DNS запись TXT, через 2-3 часа серверы синхронизируются — и всё готово.

Если ранее были данные по ресурсу http://domen.ru, то они сразу отобразятся и в доменному ресурсе domen.ru

Яндекс.Вебмастер — используем режим «переезд сайта».

Несмотря на то, что  в меню Яндекс показывает именно домен (без указания протоколов и префиксов) — он по прежнему считает новый протокол как другой сайт. 

В ВебМастере Яндекс идем в меню «Индексирование», далее дополнительный пункт «Переезд сайта»

Как включить HTTPS на сайте?

Выбираем пункт «Добавить HTPPS» и сохраняем. Через некоторое время Яндекс переиндексирует Ваш сайт.

НЕ забудем внести изменения в файл robots.txt

Только одну букву добавить

Вместо http://domen.ru/sitemap.xml укажем 

httpS://domen.ru/sitemap.xml

Иначе не очень продвинутые поисковые роботы будут ругаться, что не нашли файл sitemap.xml

Да, именно так:

  • файл robots.txt — он один такой и его название зафиксировано = робот знает и находит
  • файл sitemap.xml — название может быть любым и самих файлов может быть несколько = робот не находит

НАСТРОЙКА ИЗВЕСТНЫХ CMS ДЛЯ РАБОТЫ ПО HTTPS

Помимо ссылок, которые явным образом указываются в коде страницы, существуют особенности при переводе различных CMS на защищенный протокол.

Joomla!

В конфигурационном файле (configuration.php) строка: public $live_site =»»; заменяется на следующую: public $live_site = ‘https://www.yourdomain.com’; где «yourdomain.com» — имя домена. Также вместо строки public $force_ssl = ‘0’; используется: public $force_ssl = ‘1’;

Обращаем внимание, что указанные действия производятся уже после установки сертификата на домен, иначе они могут привести к неработоспособности сайта.

WordPress

В административной панели WordPress производится смена протокола в адресе сайта. Для этого в разделе «Настройки» > «Общие«, в полях «Адрес WordPress» и «Адрес сайта» протокол «http» меняется на «https». В конфигурационном файле (wp-config.php) добавляется следующая строка: define(‘FORCE_SSL_ADMIN’, true);

Читаем статью (дополнительный плагин нужен обязательно!)

Переводим сайт WordPress на https

Bitrix

Работа сайта включается в административной панели сайта с использованием безопасного соединения. Сделать это можно следующим образом: Настройки > Управление масштабированием > Панель управления > Глобальные действия > Включить https.

Обращаем внимание, что при использовании ускорителя «Композит», либо при загрузке элементов из облака не учитывается протокол подключения к основному сайту. По этой причине все ссылки на них формируются с использования протокола http, что приведет к некорректному отображению сайта, в частности не будут подгружаться файлы, размещенные в облачном хранилище. Исходя из чего не рекомендуем включать ускорители Bitrix или использовать облачные хранилища, к которым нет доступа по https, для хранения контента.

Резюме.

Для перевода сайта на защищенный протокол https надо:

  • получить сертификаты SSL
  • на хостинге купить/включить дополнительные услуги, что бы все это заработало
  • настроить переадресацию HTTPS
  • внести изменения в файлы CMS
  • изменить настройки CMS
  • проверить все страницы сайта на старые адреса с http (кто-нибудь мог внести руками при разработке сайта)

 


Вы можете сохранить ссылку на эту страницу себе на компьютер в виде htm файла



Вы будете видеть наш сайт у себя в ленте


Нажмите "Подписаться"


Нажмите "Нравится" или напишите сообщение



Почитать в разделе: БЕЗОПАСНОСТЬ САЙТА

  • Всего статей в разделе: 8
  • Показано статей в списке: 5
  • Сортировка: название по алфавиту

HTTP заголовки безопасности

Что это за загадочные письмена? В процессе запроса сайта с сервера - браузер и сервер обмениваются информацией. Сервер может заранее сообщить браузеру, что можно и что нельзя делать с сайтом. Про взаимодействие браузера и сервера читаем здесь Security HTTP Headers для "чайников" Например сервер может указать браузеру: сразу переходить на HTTPS-версию запрещать открывать сайт во фрейме и так далее За это как раз отвечают HTTP заголовки безопасности. Проверить свой сайт можно на...
(Читать полностью...)

Защищаем форму обратной связи от ботов

Есть форма обратной связи для клиентов Читаем статью Форма обратной связи Проблема в том, что если просто разместить код html формы на странице - рекламные боты замучают.  И fail2ban особо не поможет, т.к. IP-адресов много и они динамически меняются.  И будет что-то типа такого безобразия Да, добавление разных фильтров (у нас же есть PHP под рукой) помогает - но сервер PHP будет заниматься этой чепухой, вместо того, что бы работать с реальными посетителями сайта. Что делать? Создаем форму обратной связи через PHP Будем прятать форму от глупых...
(Читать полностью...)

Как проверить сайт на вирусы?

Для чего это надо? Что быть уверенным, что это Ваш сайт :) Фактически векторы атаки разные и там могут быть не только вирусы: - добавлена переадресация на чужой сайт - воруют Ваш трафик - переадресация на сайт с троянами - используют Ваш сайт для создания ботнета - Ваш сайт уже является частью ботнета - с помощью Вашего сайта (точнее сервиса хостинга) рассылается спам Самая простая регулярная проверка сайта на вирусы - добавить сайт в Вебмастер mail.ru = там по умолчанию встроен бесплатный антивирус, точнее набор...
(Читать полностью...)

Настраиваем fail2ban под свои задачи

Крайне полезное серверное приложение Linux - настраиваем под себя Про установку и запуск читаем здесь Установка fail2ban на Linux Для самостоятельной настройки нужно: лог с данными настроить фильтр (получение IP из лога) действия (что делать с этими IP) и джайл - связать фильтр и действие :) Например, как это сделать для блокировки ботов-подборщиков логина и пароля в WordPress - читаем статью Блокируем ботов-подборщиков через fail2ban Или создаем свой вариант. Делаем свой лог Например в корневой папке web-server (в папках выше политика безопасности сервера не даст доступа нашему...
(Читать полностью...)

Установка fail2ban на Linux

Устанавливаем и запускаем fail2ban на Linux Сначала разберемся с названиями. Всё это - "детальки" сервера на Linux Название Описание netfilter Межсетевой экран (брандмауэр), встроен в ядро Linux с версии 2.4. iptables (IP4) ip6tables (IP6) Название пользовательской утилиты (запускаемой из командной строки), предназначенной для управления системой netfilter. ipset Позволяет использовать большие таблицы IP и MAC адресов, подсетей, номеров портов совместно...
(Читать полностью...)