Любой сайт можно перевести на https?

Что может помешать:


Проблема: хостинг, на котором размещен сайт, не выдает/не устанавливает такие SSL-сертификаты. Случай крайне редкий!

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


Проблема: несколько сайтов находятся в одной админ-панели и неосновные домены являются "алиасами" (псевдонимами), для которых выпуск ssl-сертификатов невозможен. Проблема была зафиксирована на хостинге Mchost.

Решение: для основного сайта выпуск возможен. Необходимо воспользоваться видоизмененным редиректом в файле .htaccess для "склейки". Все "алиасы" нужно перевести в режим отдельных "папок" (сайтов), выпустить для них SSL-сертификаты. Сделать с них 301 редиректы на основной сайт. 


Проблема: у домена есть поддомены.

Решение: выпуск сертификата Wild, который распространяется и на поддомены (не более 99). В редких случаях используют выпуск отдельных сертификатов для каждого поддомена.


Проблема: на сайте есть контент, использующий данные с других сайтов, не перешедших на https.

Решение: ждать, пока все сторонние сайты перейдут на защищенное соединение, либо отказаться от этого контента.


Где взять SSL сертификат?

Практически любой хостинг предоставляет возможность выпуска SSL-сертификатов - бесплатных и платных. 

Если условия вас не устраивают, а хостинг поменять нельзя, то закажите SSL на стороннем сервисе. Их много — reg.ru, 2domains.ru и т.д. 

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

Если сайт представляет собой интернет-магазин, то бесплатный сертификат не подойдет.

Настраиваем сайт на работу - корректная обработка ссылок

Чек-лист перевода сайта на https

— Настройки в административной панели для перехода на https протокол.

Время и сложность зависят от "админки" - где-то пара кнопок, где-то чуть дольше.

Например, для MODX REVO нужно сделать две системные настройки link_tag_scheme (значение - 1) и server_protocol (значение - https). Если используете несколько контекстов, то поменять настройки нужно для каждого контекста.

— Настроить редирект в .htaccess.

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

Вариантов правил склейки несколько. Решается методом проб и перебора.

Наиболее часто используемые варианты:

Вариант 1

RewriteCond %{ HTTPS} =off
RewriteRule (.*) https://%{ HTTP_HOST}%{ REQUEST_URI} [QSA,L]

Вариант 2 (!)

RewriteCond %{ SERVER_PORT} !^443$
RewriteRule .* https://%{ SERVER_NAME}%{ REQUEST_URI} [R=301,L]

Вариант 3

RewriteCond %{ ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{ HTTP_HOST}%{ REQUEST_URI} [L,R=301]

Вариант 4 (!)

RewriteCond %{ HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{ HTTP_HOST}/$1 [R=301,L]

Вариант 5

RewriteCond %{ HTTP:CF-Visitor} '"scheme":"http"'
RewriteRule ^(.*)$ https://www.domain.com/$1 [L]

#не забудьте заменить на ваш домен

Вариант 6

RewriteCond %{ HTTP:X-Forwarded-Protocol} !=https
RewriteRule .* https://%{ SERVER_NAME}%{ REQUEST_URI} [R=301,L]

Вариант 7.

RewriteCond %{ HTTP:X-Forwarded-Proto} !https
RewriteCond %{ HTTPS} off
RewriteRule ^ https://%{ HTTP_HOST}%{ REQUEST_URI} [L,R=301,NE]

Как делать не надо в htaccess

Далее, все стили, скрипты, шрифты должны загружаться через https. Нужно проверить и исправить, если это не так.

Если на сайте есть абсолютные внутренние ссылки, заменить их на относительные без указания протокола и домена.

Все внешние ссылки нужно заменить на безпротоколовый вариант (начинать с //, например href=”//a-tum.ru”).

Проверить файлы robots.txt и sitemap.xml — везде должен быть https протокол.

"Скинуть" кеш сайта.

Полностью проверить работоспособность сайта: все ли страницы корректно открываются, отправляются ли формы, работают ли скрипты, калькуляторы, личный кабинет, интернет-магазин, онлайн-оплата и так далее.

Как же позиции в ТОПе?

  • Еще раз проверить файлы robots.txt (директива host) и sitemap.xml.
  • Добавить сайт с https в Яндекс.Вебмастер.
  • Включить переезд на https в панели Яндекс.Вебмастер для сайта с http.
  • Добавить сайт с https в Google Console.
  • В настройках Google Analytics поменять в адресе сайта на https.
  • После добавления в Яндекс.Вебмастер и Google Console сайта с https проверить доступность и корректность sitemap.xml.
  • По возможности заменить внешние ссылки на ссылки с https и в дальнейшем учитывать это при размещении новых ссылок.
Этот сайт использует сервис веб-аналитики Яндекс Метрика и технологию “cookie”.
Я ознакомлен с Политикой в отношении обработки персональных данных и даю согласие на обработку персональных данных.