Настройка HTTPS в OpenCart: пошаговая инструкция (Nginx, Apache)
Настройка HTTPS в OpenCart требуетчетырёх аспектов: установка SSL-сертификата, правка конфигурационных файлов (config.php), настройка 301-редиректа на уровне сервера и устранение mixed content. После перехода обязательно проверьте sitemap, canonical, платёжные модули и уведомления — если что-то упустите, поисковики увидят две версии сайта, а оплата может перестать работать.
Настройка HTTPS в OpenCart: пошаговая инструкция (Nginx, Apache)
Полная инструкция: HTTP → HTTPS в OpenCart
Шаг 1. Установка SSL-сертификата
Бесплатный сертификат Let’s Encrypt доступен на большинстве хостингов через панель управления (ISPmanager, cPanel, Plesk). Установите его на домен — процесс занимает 2–5 минут. Если хостинг не поддерживает Let’s Encrypt — купите сертификат у любого провайдера (от 1 500 ₽/год для базового (DV), от 5 000 ₽ для wildcard — хотя для магазина на одном домене wildcard не нужен).
Как лучше / как не делать: По моей практике, самая частая ошибка при переходе на HTTPS — не mixed content, а забытый 301-редирект. Без него Google индексирует обе версии сайта параллельно, и через месяц владелец получает падение позиций. Я бы рекомендовал начинать не с сертификата, а с настройки редиректа — убедились, что HTTP → HTTPS работает, потом ставите сертификат и правите config.php.
Кейс из практики: Был у нас клиент — магазин электроники (крупный каталог, больше 10 000 товаров). Переезд на HTTPS сделали, а HSTS не настроили. Через две недели заметили, что часть заказов перестала приходить — платёжный шлюз отказывал, потому что callback возвращался по HTTP. HSTS-заголовок решил проблему за один день. Технический аудит OpenCart как раз выявляет такие скрытые проблемы до того, как они влияют на продажи.
Шаг 2. Включение SSL в настройках магазина
В админке OpenCart перейдите в Система → Настройка → Редактирование. В карточке магазина включите переключатель «Использовать SSL». Это переключит основной URL магазина на HTTPS.
Шаг 3. Правка конфигурационных файлов
Откройте два файла и замените HTTP на HTTPS:
// config.php (корень сайта)define('HTTP_SERVER', 'https://yourdomain.com/');define('HTTPS_SERVER', 'https://yourdomain.com/');// admin/config.phpdefine('HTTP_SERVER', 'https://yourdomain.com/admin/');define('HTTPS_SERVER', 'https://yourdomain.com/admin/');Важно: перед правкой сделайте бэкап обоих файлов. Ошибка в config.php — белая страница без описания ошибки.
Шаг 4. Настройка 301-редиректа
Все HTTP-запросы должны автоматически перенаправляться на HTTPS. Вот конфигурация для двух основных серверов:
Nginx
server { listen 80; server_name yourdomain.com www.yourdomain.com; return 301 https://yourdomain.com$request_uri;}Apache (.htaccess)
RewriteEngine OnRewriteCond %{HTTPS} offRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Подробнее о настройке редиректов — в статье «Редирект HTTP на HTTPS в OpenCart на Nginx».
Шаг 5. Устранение mixed content
Mixed content — это когда HTTPS-страница грузит ресурсы по HTTP. Браузер блокирует или показывает предупреждение. По практике, чаще всего проблемы дают внешние скрипты аналитики, шрифты Google Fonts, если они подключены без протокола, и изображения, загруженные в описаниях товаров через абсолютные http:// ссылки.
Как найти mixed content:
- Откройте DevTools (F12) → вкладка Console — ошибки вида «Mixed Content».
- Проверьте все абсолютные URL в описаниях товаров и статей — замените
http://наhttps://. - Внешние виджеты (чаты, аналитика, карты) — убедитесь, что они поддерживают HTTPS.
Шаг 6. Замена ссылок в базе данных
Если в описаниях товаров, категорий или статей прописаны абсолютные HTTP-ссылки, их нужно заменить. Через phpMyAdmin:
-- Замена в описаниях товаровUPDATE oc_product_description SET description = REPLACE(description, 'http://yourdomain.com', 'https://yourdomain.com');-- Замена в описаниях категорийUPDATE oc_category_description SET description = REPLACE(description, 'http://yourdomain.com', 'https://yourdomain.com');Сначала сделайте бэкап базы! Неправильный запрос может повредить данные.
Чек-лист после перехода на HTTPS
- Все страницы открываются по HTTPS без предупреждений.
- HTTP отдаёт 301 на HTTPS.
- Нет mixed content (проверьте Console в DevTools).
- Sitemap содержит HTTPS-адреса.
- Canonical-тег ведёт на HTTPS.
- Платёжные модули работают (проверьте тестовый заказ).
- Яндекс.Метрика и Google Analytics получают данные.
- Яндекс.Вебмастер и Google Search Console обновлены.
- Добавлен HSTS-заголовок (опционально, но рекомендуется).
Если не уверены, что всё настроили правильно — ускорение и оптимизация OpenCart включает проверку HTTPS, mixed content и корректность редиректов как часть комплексного аудита.
Типичные ошибки
- Правка config.php без бэкапа. Ошибка в пути — белая страница. Всегда сохраняйте копию файла перед редактированием.
- Забыли про mixed content. HTTPS-страница грузит скрипты по HTTP — браузер блокирует. Проверяйте Console в DevTools.
- Не настроен 301-редирект. Без него поисковики видят две версии сайта — это дублирование контента.
- Sitemap содержит HTTP-адреса. Поисковики будут пытаться индексировать HTTP-версию. Обновите генерацию sitemap.
- Не проверили платёжные модули. Некоторые шлюзы требуют HTTPS для callback-уведомлений. Без HTTPS оплата может перестать работать.
FAQ
Почему браузер показывает «не защищено»?
Часто причина в mixed content: часть ресурсов (изображения, CSS, JS) грузится по HTTP на HTTPS-странице. Откройте DevTools → Console и найдите ошибки.
Нужно ли менять ссылки в базе данных?
Если в описаниях товаров и статей прописаны абсолютные HTTP-ссылки — да. Используйте запрос REPLACE в phpMyAdmin (с бэкапом базы).
Какой редирект нужен: 301 или 302?
Для постоянного перехода на HTTPS — 301. Он сообщает поисковикам, что страница навсегда переехала, и передаёт вес.
Влияет ли HTTPS на SEO?
Да. HTTPS — базовое требование доверия и безопасности для интернет-магазина. Google и Яндекс используют HTTPS как сигнал ранжирования.
Подробнее о выборе домена, DNS-записях и SSL-сертификатах — в настройка домена и SSL для OpenCart.
Сколько времени занимает полный переход на HTTPS?
Если хостинг поддерживает Let’s Encrypt — 15–30 минут на установку, включая настройку редиректа и проверку mixed content. Если сертификат покупается вручную — до 2 часов с учётом ожидания выпуска. Самое долгое — замена ссылок в базе, если магазин старый и там много абсолютных HTTP-путей. По практике, на магазин среднего размера (5–10 тыс. товаров) уходит 2–3 часа с учётом полной проверки.
Настройка HTTPS
| Шаг | Nginx | Apache |
|---|---|---|
| 1. Получение SSL | Let Encrypt | Let Encrypt |
| 2. Настройка | server listen 443 ssl | SSLEngine on в .htaccess |
| 3. Редирект HTTP на HTTPS | return 301 https://$host$request_uri | RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] |
| 4. OpenCart | config.php: https:// | config.php: https:// |
📌 Рекомендуем к прочтению:
📌 Рекомендуем к прочтению:
Комментарии (0)
Пока нет комментариев. Будьте первым!
Оставить комментарий