Переход на https
- Кратко о SSL и https
- Настройка со стороны хостинга
- Настройка со стороны системы
Кратко о SSL и https
SSL (secure sockets layer) - криптографический протокол, который подразумевает более безопасную связь. Он использует асимметричную криптографию для аутентификации ключей обмена и коды аутентификации сообщений для целостности сообщений.
HTTPS (HyperText Transfer Protocol Secure) - расширение протокола HTTP, поддерживающее шифрование. Данные, передаваемые по протоколу HTTPS, "упаковываются" в криптографический протокол SSL или TLS. В отличие от HTTP, для HTTPS по умолчанию используется TCP-порт 443.
Наличие SSL сертификата на сайте влияет на позицию в поиске Google, согласно официальному заявлению компании.
Настройка со стороны хостинга
Основная часть настроек при переходе на протокол https осуществляется со стороны хостинга.
Для этого вам необходимо приобрести ssl-сертификат у одного из доступных поставщиков услуг регистрации SSL сертификатов и установить его в панели управления хостингом (возможность самостоятельной установки зависит от конфигурации панели управления хостингом). Если такой возможности нет, вам стоит обратиться к вашему хостеру для установки данного сертификата на ваш хостинг .
Если вы используете наш хостинг, то для создания запроса хостеру вам необходимо:
Шаг 1: Залогиньтесь в личном кабинете хостинга
Открыть форму входа в личный кабинет можно по ссылке
Шаг 2: Откройте форму создания тикета
Перейдите к разделу меню "Центр поддержки", и выберите в нем пункт "Список запросов":
После чего осуществите клик по иконке "Создать":
Шаг 3: Отправление заявки
В появившейся форме, вам необходимо четко описать суть запроса и кликнуть по кнопке "Ок":
Настройка со стороны системы
Со стороны системы, для перехода на https протокол можно использоватьследующие способы решений:
Решение 1:
В файле config.php в папке application/config
найти переменную $config['base_url'] = '';
и в нее вписать напрямую адрес сайта:
$config['base_url'] = 'https://ваш-сайт/';
Далее, если вы используете редирект с www.имя_вашего_сайта.com на просто имя_вашего_сайта.com, то нужно еще в в файле htaccess, вместо
# RewriteCond %{HTTP_HOST} ^www.site.com$ [NC]
# RewriteRule ^(.*)$ http://site.com/$1 [L,R=301]
разместить конструкцию:
RewriteCond %{HTTP_HOST} !^site\.com$ [NC]
RewriteRule ^(.*)$ https://site.com/$1 [R=301,L]
Решение 2:
В файле index.php, который находится в корневой папке сайта, добавить строки кода:
if($_SERVER["HTTPS"] != "on" && $_SERVER["HTTP_X_FORWARDED_PROTO"] == 'http')
{
header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
exit();
}
Вносить какие-либо правки со стороны системы необходимо только после окончания настроек хостинга.
Просим учесть, в данном документе указаны только основные решения, которые подходят для большинства серверов. Однако, вопрос настройки SSL, в том числе и со стороны системы, во многом зависит от конфигурации вашего сервера.
В случае, если ни один из предложенных в данной инструкции вариантов не подходит , вам небходимо обратится с данной проблемой непосредственно к хостеру (мы, как разработчики системы, не знакомы со спецификой используемого вами стороннего хостинга).
Редирект на https в файле htaccess
Для нашего сервера и большинства других подходит конструкция вида:RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
Для ряда других хостингов (в часности для Ukraine) подойдет код вида:
RewriteBase /
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteRule ^(.*) https://site-name.com/$1 [L,R=301]