SSL-сертификат — это криптографический протокол, который подразумевает более безопасную связь. Он не позволяет мошенникам перехватить или подменить личные данные пользователя: контакты, номер банковской карты, логин, пароль, адрес электронной почты и т.д.
По этой причине использование SSL-сертификата на сайтах, я считаю обязательным!
Перевод Joomla на HTTPS
Прежде чем приступать к настройке SSL на сайте Joomla, убедитесь в том, что SSL-сертификат установлен для вашего домена (делается это на хостинге). То есть на сервере должен быть включён HTTPS.
Также обязательно сделайте резервную копию сайта.
Как включить 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 на сайте:
- Введите в адресной строке браузера адрес вашего сайта с HTTP и нажмите Enter. Должно произойти перенаправление с HTTP на HTTPS и в адресной строке уже буде адрес сайта с HTTPS.
- Введите в адресной строке браузера адрес вашего сайта с WWW и нажмите Enter. Должно произойти перенаправление с WWW на HTTPS и в адресной строке уже буде адрес сайта с HTTPS.
- Введите в адресной строке браузера адрес вашего сайта без HTTP, WWW, HTTPS (просто адрес). Нажмите Enter. Должно произойти перенаправление и в адресной строке уже буде адрес сайта с HTTPS.
Если эти три пункта выполняются, значит всё настроено правильно.
Если всё сделано правильно, то в адресной строке браузера, рядом с адресом сайта, должен быть значок закрытого замка (на любой странице сайта). Если по нему кликнуть, то вы увидите сообщение «Защищенное соединение», или «Безопасное подключение».
Частые проблемы при переходе на 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]
Как включить SSL в VirtueMart
Для того, чтобы включить SSL в VirtueMart — перейдите в ViryueMart | Конфигурация и на вкладке «Мгазин» отметьте галочкой пункт Включить SSL.
А вот с файлом .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 написано тоже самое, но плюс еще что то, что не пойму...
Я все время боюсь лезть в код, боюсь что то сделать неправильно... Вот и ищу решение... Спасибо ВАм огромное за помощь!
Подскажите, пожалуйста, все ли правильно у меня в этом файле написано?
Все что я описал в данной статье должно быть прописано именно в .htaccess (а не .htaccess 1).
А файл .htaccess 1 вы можете скачать себе на компьютер, чтобы не потерять (на всякий случай). А с сервера удалите его.
RSS лента комментариев этой записи