Перевод Joomla на HTTPS (SSL-сертификат)

SSL-сертификат — это криптографический протокол, который подразумевает более безопасную связь. Он не позволяет мошенникам перехватить или подменить личные данные пользователя: контакты, номер банковской карты, логин, пароль, адрес электронной почты и т.д.

По этой причине использование SSL-сертификата на сайтах, я считаю обязательным!

Перевод Joomla на HTTPS

Прежде чем приступать к настройке SSL на сайте Joomla, убедитесь в том, что SSL-сертификат установлен для вашего домена (делается это на хостинге). То есть на сервере должен быть включён HTTPS.

Также обязательно сделайте резервную копию сайта.

Как включить HTTPS в Joomla!

В панели управления сайтом переходим в Система | Общие настройки и там переходим на вкладку Сервер. Параметр «Включить HTTPS» выбираем «Весь сайт».

Joomla HTTPS

Как настроить HTTPS в Joomla!

После того, как включили HTTPS в панели управления, нужно внести небольшие изменения в файл configuration.php и .htaccess:

Шаг 1. Открываем файл configuration.php, который находится в корневой папке сайта. Находим в нём строку с параметром $live_site. И прописываем в этот параметр имя вашего сайта с https.

Вот пример как выглядит эта строка для моего сайта:

public $live_site = 'https://d-nik.pro';
Примечание! Обратите внимание на то, что после адреса сайта слеша нет. Это очень важно!

И конечно же не забудьте сохранить файл configuration.php после внесенных изменений.

Шаг 2. Теперь нужно установить перенаправление с HTTP на HTTPS в файле .htaccess. Этот файл тоже находится в корне вашего сайта. Чтобы перенаправить пользователей с HTTP на HTTPS откройте файл .htaccess и найдите в нём строку RewriteEngine On. После этой строки нужно добавить следующий код:

RewriteCond %{HTTPS} off
RewriteRule ^(abc/def|ghi)(.*)/?$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]

Также можно установить перенаправление с www на HTTPS. Для этого добавляем еще такой код:

RewriteCond %{HTTP_HOST} ^www.ваш_сайт.com
RewriteRule ^(.*)$ https://ваш_сайт.com/$1 [R=301,L]

 Теперь проверьте всё ли правильно работает.

Как проверить правильно ли работает HTTPS на сайте:

  1. Введите в адресной строке браузера адрес вашего сайта с HTTP и нажмите Enter. Должно произойти перенаправление с HTTP на HTTPS и в адресной строке уже буде адрес сайта с HTTPS.
  2. Введите в адресной строке браузера адрес вашего сайта с WWW и нажмите Enter. Должно произойти перенаправление с WWW на HTTPS и в адресной строке уже буде адрес сайта с HTTPS.
  3. Введите в адресной строке браузера адрес вашего сайта без HTTP, WWW, HTTPS (просто адрес). Нажмите Enter. Должно произойти перенаправление и в адресной строке уже буде адрес сайта с HTTPS.

Если эти три пункта выполняются, значит всё настроено правильно.

Если всё сделано правильно, то в адресной строке браузера, рядом с адресом сайта, должен быть значок закрытого замка (на любой странице сайта). Если по нему кликнуть, то вы увидите сообщение «Защищенное соединение», или «Безопасное подключение».

Joomla SSL

Частые проблемы при переходе на SSL-сертификат и их решение

  • 1. Если не получается сохранить файл configuration.php после внесения изменений, значит этот файл защищен от записи.

Чтобы получить возможность редактировать файл configuration.php, нужно с помощью файлового менеджера установить для него права доступа 644.

  • 2. Если в файле .htaccess не работает код, приведённый выше, то попробуйте этот: 
RewriteEngine On
RewriteCond %{HTTPS} OFF
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
  • 3. Если в консоли браузера высвечиваются ошибки mixed content, то попробуйте добавить в файл configuration.php следующую строку:
$_SERVER['HTTPS'] = 'on';

А в файл .htaccess

RewriteCond %{HTTP:X-HTTPS} ^1$
RewriteRule .? - [E=HTTPS:on]
Внимание! После каждого обновления конфигурации, строка добавленная в файл configuration.php, будет перезаписана. Поэтому нужно будет добавлять ее снова.

Как включить SSL в VirtueMart

Для того, чтобы включить SSL в VirtueMart — перейдите в ViryueMart | Конфигурация и на вкладке «Мгазин» отметьте галочкой пункт Включить SSL.

VirtueMart SSL

Комментарии   
# Перенаправления с HTTP на HTTPSАнтонина 06.06.2021 19:25
В файле configuration.php все так как у Вас написано.
А вот с файлом .htaccess такая странная штука получается, у меня почему то их два таких файла: .htaccess и .htaccess 1. Причем внутри у них разный код, вернее начало одинаковое но в .htaccess 1 там еще есть строчки кода. Откуда взялся .htaccess 1 - не знаю. Перед этим переписывалась с техподдержкой, они там что то пытались сделать...
В файле .htaccess нашла RewriteEngine On и вот что там написано:

RewriteEngine On
## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site then comment out the operations listed
# below by adding a # to the beginning of the line.
# This attempts to block the most common type of exploit `attempts` on Joomla!
#
# Block any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block any script that includes a tag in URL.
RewriteCond %{QUERY_STRING} (|%3E) [NC,OR]
# Block any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root home page
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.

## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects

##
# Uncomment the following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##

# RewriteBase /

## Begin - Joomla! core SEF Section.
#
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.

В файле .htaccess 1 написано тоже самое, но плюс еще что то, что не пойму...
Я все время боюсь лезть в код, боюсь что то сделать неправильно... Вот и ищу решение... Спасибо ВАм огромное за помощь!
Подскажите, пожалуйста, все ли правильно у меня в этом файле написано?
Сообщить модератору
# Файл .htaccessD-Nik Pro 07.06.2021 07:43
Думаю, что файл .htaccess 1 ни на что не влияет. Скорее всего — это просто резервная копия старого файла .htaccess до внесения в него изменений. Некоторые программисты так делают (просто переименовывают файл, чтобы не потерять его. Но в работе он ни на что не влияет).
Все что я описал в данной статье должно быть прописано именно в .htaccess (а не .htaccess 1).
А файл .htaccess 1 вы можете скачать себе на компьютер, чтобы не потерять (на всякий случай). А с сервера удалите его.
Сообщить модератору
# Перенаправления с HTTP на HTTPSАнтонина 06.06.2021 19:27
А еще хотела спросить, я с VirtueMart перешла на Hikashop, в Hikashop тоже надо настраивать SSL?
Сообщить модератору
# Joomla и HikashopD-Nik Pro 07.06.2021 07:44
Никогда не работал с Hikashop. Поэтому ничего не смогу вам подсказать.
Сообщить модератору

АВТОРИЗАЦИЯ