SSL для OpenCart
Полное руководство по переходу на HTTPS для OpenCart всех версий и сборок: сертификат, config.php, 301-редиректы, кеш, вебмастеры и типовые ошибки.
Подходит для OpenCart 2.x / 3.x, ocStore и LiveStore
Резервное копирование
Меры предосторожности перед началом работы.
Важно! Перед началом любых изменений создайте резервную копию файлов и базы данных сайта.
Получение SSL-сертификата
Для перехода на HTTPS необходим SSL-сертификат. Рекомендуемые провайдеры:
Получение SSL-сертификата
Провайдеры сертификатов для перехода на HTTPS.
Let's Encrypt
Бесплатный сертификат, доступен в панели большинства хостингов.
Comodo
Бесплатный сертификат на 90 дней, с продлением.
Платные CA
DigiCert, Entrust, GeoTrust, GlobalSign, Symantec, SSL.com, Thawte, Trustwave, SwissSign.
Рекомендация: Let's Encrypt предоставляет бесплатные Wildcard-сертификаты для основного домена (domain.tld) и поддоменов (*.domain.tld).
Установка сертификата
Активация SSL на сервере:
- Установите сертификат на сервер согласно документации (Apache, Nginx)
- Активируйте сертификат через панель управления хостинга
- Обратитесь в техподдержку хостинга для установки
Настройка OpenCart
Внимание: во всех примерах ниже замените site.ru на ваш домен.
3.1. Настройка 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/');
config.php в папке /admin
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-фид
Настройка 301 редиректов
Перенаправление с HTTP на HTTPS.
Важно: редиректы добавляйте в .htaccess после RewriteBase / или RewriteEngine On. Проверьте, что mod_rewrite включён.
Универсальный редирект (основной домен)
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?(osnovnoy_domen\.ru)
RewriteRule ^ https://%2%{REQUEST_URI} [R=301,L]
Замените osnovnoy_domen.ru на ваш домен.
Вариант 1: с www на без 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
RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [R=301,L]
Вариант 2: без www на с 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
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Готовые решения для хостингов
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Timeweb: включите редирект HTTP → HTTPS в панели управления. Либо вручную:
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Ukraine.com.ua: при проблемах обратитесь в поддержку хостинга — конфигурация сложная.
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]
Masterhost.ru:
RewriteCond %{ENV:HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
Nginx + Apache (эмуляция SSL):
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]
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]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Beget.ru:
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Очистка кэша
Обновление временных файлов:
- Очистите кэш OpenCart: удалите содержимое system/storage/cache/
- Очистите кэш модификаторов: удалите содержимое system/storage/modification/
Проверка работы
Тестирование редиректов и функциональности.
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 или сделайте относительными.
Добавление в вебмастеры
Регистрация HTTPS-версии сайта в сервисах:
Добавление в вебмастеры
Регистрация HTTPS-версии сайта в сервисах.
Google Search Console
Яндекс Вебмастер
Bing Webmaster
Mail.ru Вебмастер
Решение проблем
Устранение возможных ошибок:
- 404 ошибки: проверьте настройки сервера и DocumentRoot
- HTTP-изображения: проверьте настройки CDN и ссылки в базе данных
- Mixed Content: все внешние ресурсы (скрипты, стили, шрифты, iframe) должны быть по HTTPS
- Ограничения хостинга: на виртуальном хостинге возможны ограничения — рассмотрите VPS
Важно: все внешние ресурсы должны загружаться по HTTPS, иначе возникнут ошибки Mixed Content.
Полезные инструменты
Сервисы для проверки и мониторинга SSL:
Полезные инструменты
Сервисы для проверки и мониторинга SSL.
SSL Labs
Проверка SSL-сертификата и конфигурации: Проверить SSL.
WebPageTest
Проверка редиректов и производительности: Тестировать.
HTTP/2 Test
Проверка поддержки HTTP/2 и ALPN: Проверить HTTP/2.
Host Tracker
Мониторинг доступности сайта: Мониторить.
SSLShopper
Проверка установленного сертификата: Проверить сертификат.
Comments
Leave a Comment