Настройка протокола HTTPS в OpenCart 2

https

Привет друзья! Сегодня я покажу как настроть работу Вашего интернет магазина на движке OpenCart 2 по безопасному протоколу HTTPS и с использованием бесплатного сертификата SSL от Let`s Encrypt.

Использование защищенного протокола имеет ряд существенных плюсов при использовании:

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

В общем надо переходить…

Для начала сертификат Let`s Encrypt (или другой) нужно получить.  Так как я почти все свои сайты располагаю на хостинге Beget.com, то там он выдается бесплатно (последний мне выдали за 2-3 дня с момента заказа). Если Вы заказываете (покупаете) там доменное имя, то все вообще делается автоматически.

Ладно, хватит рекламы 🙂 Допустим сертификат SSL у Вас есть.

  1. Включаем поддержку использования SSL в OpenCart.

Идем в админку сайта, там Система->  Настройки -> Сервер,  ставим галочку в графе Security — Использовать SSL

ssl для https

          2. Далее нужно настроить «301 редирект»  — это перенаправление посетителей и поисковых роботов с одного URL-адреса (HTTP)на другой (HTTPS).

Делается это в файле .htaccess. Этот файл лежит в корне сайта (/название_сайта/public_html/)и изначально называется .htaccess.txt.

Подключаемся по FTP копируем к себе файл и вносим в него изменения — ищем строчку RewriteEngine On и сразу после нее дописываем:

#Редирект с www to non-www(https)
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
#Редирект с http to https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

сохраняем файл с новым именем .htaccess  и заливаем по FTP обратно на хостинг

       3. Редактируем файл /название_сайта/public_html/config.php

В нем находим  строчки:

// HTTP 

define('HTTP_SERVER', 'http://ваш-сайт/'); 

// HTTPS

define(‘HTTPS_SERVER’, ‘http://site.ru/’); 

и заменяем на следующее. Этим мы разрешим использовать https

// HTTP
define('HTTP_SERVER', 'https://ваш-сайт/');

// HTTPS
define(‘HTTPS_SERVER’, ‘https://site.ru/’); 

 

4.  Редактируем файл /название_сайта/public_html/admin/config.php

В нем:

// HTTP
define('HTTP_SERVER', 'http://site.ru/admin/');
define('HTTP_CATALOG', 'http://site.ru/');
// HTTPS
define(‘HTTPS_SERVER’, ‘http://site.ru/admin/’);
define(‘HTTPS_CATALOG’, ‘http://site.ru/’);

меняем на

// HTTP
define('HTTP_SERVER', 'https://site.ru/admin/');
define('HTTP_CATALOG', 'https://site.ru/');
// HTTPS
define(‘HTTPS_SERVER’, ‘https://site.ru/admin/’);
define(‘HTTPS_CATALOG’, ‘https://site.ru/’);

 

Заливаем файлы обратно на хостинг и все — магазин работает по протоколу HTTPS.

P.S.

В процессе работы выяснился один баг: в админке при просмотре и редактировании товара выскакивала ошибка «error undefined» . Лечится это установкой модуля Bug Fixes 2.1.0.2

 

 

 

Vladimir

Добавить комментарий