UPD 07.03.2018: Яндекс заменил директиву HOST на 301-й редирект. Подробнее
0

Резервное копирование

Меры предосторожности перед началом

Важно! Перед началом любых изменений создайте резервную копию файлов и базы данных сайта.
1

Получение SSL-сертификата

Выбор и получение сертификата

Для перехода на HTTPS необходим SSL-сертификат. Рекомендуемые провайдеры:

Рекомендация: Let's Encrypt предоставляет бесплатные Wildcard-сертификаты для основного домена (domain.tld) и поддоменов (*.domain.tld).
2

Установка сертификата

Активация SSL на сервере

  • Установите сертификат на сервер согласно документации (Apache, Nginx).
  • Активируйте сертификат через панель управления хостинга.
  • Обратитесь в техподдержку хостинга для установки.
3

Настройка OpenCart

Конфигурация CMS для HTTPS

Внимание: Замените "site.ru" на ваш домен.

3.1 Настройка config.php

config.php (корневой каталог)
define('HTTP_SERVER', 'http://site.ru/');
define('HTTPS_SERVER', 'http://site.ru/');

// Стало:
define('HTTP_SERVER', 'https://site.ru/');
define('HTTPS_SERVER', 'https://site.ru/');
admin/config.php
define('HTTP_SERVER', 'http://site.ru/admin/');
define('HTTP_CATALOG', 'http://site.ru/');
define('HTTPS_SERVER', 'http://site.ru/admin/');
define('HTTPS_CATALOG', 'http://site.ru/');

// Стало:
define('HTTP_SERVER', 'https://site.ru/admin/');
define('HTTP_CATALOG', 'https://site.ru/');
define('HTTPS_SERVER', 'https://site.ru/admin/');
define('HTTPS_CATALOG', 'https://site.ru/');

3.2 Настройка в админ-панели

В админ-панели: Система → Настройки → Редактировать → Вкладка Сервер → Использовать SSL — выберите Да.

3.3 Обновление robots.txt

  • Если sitemap не фид, добавьте: Sitemap: https://mysite.com/sitemap.xml
  • Если sitemap — фид, предоставьте новый HTTPS фид.
4

Настройка 301 редиректов

Перенаправление с HTTP на HTTPS

Важно: Редиректы добавляйте в .htaccess после RewriteBase / или RewriteEngine On. Проверьте, что mod_rewrite включен.
Важно: Убедитесь, что редирект с/без www уже настроен.
.htaccess
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?(osnovnoy_domen\.ru)
RewriteRule ^ https://%2%{REQUEST_URI} [R=301,L]

Замените osnovnoy_domen.ru на ваш домен.

Вариант 1: С www на без www

.htaccess — без www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} =""
RewriteCond %{HTTP:X-HTTPS} !1 [OR]
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !robots\.txt
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Вариант 2: Без www на с www

.htaccess — с www
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} =""
RewriteCond %{HTTP:X-HTTPS} !1 [OR]
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !robots\.txt
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Рекомендация: Включите редирект HTTP → HTTPS в панели управления Timeweb.
.htaccess
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
При проблемах обратитесь в поддержку хостинга из-за сложной конфигурации.
.htaccess
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP:PORT} !^443$
RewriteCond %{REQUEST_URI} !robots\.txt
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
.htaccess
RewriteCond %{ENV:HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
.htaccess
SetEnvIf X-SSL-Emu on HTTPS
RewriteCond %{HTTP:X-SSL-Emu} !on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
.htaccess
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
.htaccess
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
.htaccess
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
5

Очистка кэша

Обновление временных файлов

  • Очистите кэш OpenCart: удалите содержимое system/storage/cache/.
  • Очистите кэш модификаторов: удалите содержимое system/storage/modification/.
6

Проверка работы

Тестирование редиректов и функциональности

6.1 Если редирект с www на без www

  • HTTP с WWW → HTTPS без WWW
  • HTTP без WWW → HTTPS без WWW
  • HTTPS с WWW → HTTPS без WWW

6.2 Если редирект без www на с www

  • HTTP с WWW → HTTPS с WWW
  • HTTP без WWW → HTTPS с WWW
  • HTTPS без WWW → HTTPS с WWW

6.3 Проверка статических файлов

Проверьте, как сервер отдает статические файлы (например, фото товаров) по HTTPS.

6.4 Проверка редиректа

Убедитесь, что используется 301-й редирект (не 302). Проверьте через WebPageTest, Screaming Frog или в браузере (F12).

6.5 Проверка ссылок

Проверьте сайт на наличие HTTP-ссылок в статьях или описаниях товаров. Замените на HTTPS или сделайте относительными.

7

Добавление в вебмастеры

Регистрация HTTPS-версии сайта

8

Решение проблем

Устранение возможных ошибок

  • 404 ошибки: Проверьте настройки сервера и DocumentRoot.
  • HTTP изображения: Проверьте настройки CDN и ссылки в базе данных.
  • Mixed Content: Все внешние ресурсы (скрипты, стили, шрифты, iframe) должны быть по HTTPS.
  • Ограничения хостинга: Для виртуального хостинга (Beget, Timeweb) возможны ограничения. Рассмотрите VPS.
Важно: Все внешние ресурсы должны загружаться по HTTPS, иначе возникнут ошибки Mixed Content.
9

Дополнительная информация

Ресурсы от поисковых систем

  • Яндекс: 1, 2, 3
  • Google: 1, 2

Полезные инструменты

Сервисы для проверки и мониторинга SSL.

SSL Labs

Проверка SSL-сертификата и конфигурации

Проверить SSL →

WebPageTest

Проверка редиректов и производительности

Тестировать →

SSL Test

Проверка SSL-сертификата

Проверить SSL →

HTTP/2 Test

Проверка поддержки HTTP/2 и ALPN

Проверить HTTP/2 →

Host Tracker

Мониторинг доступности сайта

Мониторить →

SSLShopper

Проверка установленного сертификата

Проверить сертификат →