OctoberCMS и HTTPS
В этом руководстве рассказывается, как сконфигурировать OctoberCMS для работы по протоколу HTTPS
Подразумевается, что уже имеется SSL сертификат, например Let's Encrypt.
TLDR
/config/cms.php
'cms.linkPolicy' => 'secure',
/config/app.php
'app.url' => 'https://...',
Настройка конфигурационных файлов
В CMS за создание безопасных https ссылок отвечают несколько настроек:
linkpolicy Параметр отвечает за создание ссылок во всем приложении.
/* |-------------------------------------------------------------------------- | Политика создания ссылок |-------------------------------------------------------------------------- | | detect - использование схемы исходя из полученного URL адреса | secure - принудительное использование HTTPS схемы | insecure - принудительное использование HTTP схемы | force - использование схемы из значения переменной app.url | */ 'linkPolicy' => 'secure',
По умолчанию используется вариант
detect
. В теории он должен на http страницах делать http ссылки, а на https - https ссылки, но механизм не работает должным образом, поэтому используется вариантsecure
(предпочтительнее) илиforce
.backendForceSecure Параметр используется для создания принудительного доступа по защищенному протоколу к любым backend страницам, включая страницу аутентификации.
/* |-------------------------------------------------------------------------- | Принудительная защита backend HTTPS протоколом |-------------------------------------------------------------------------- | | false - не влияет использование схемы | true - принудительное использование HTTPS схемы на backend | null - параметр равен false и становаться true, если режим отладки | отключен (app.debug = false) | */ 'backendForceSecure' => null,
Нет смысла заморачиваться с
backendForceSecure
, если используетсяlinkpolicy = secure
. В подавляющем большинстве случаем этот парамет = false, так как если отключить режим отладки, а на сайте нет SSL сертификата, то нет возможности попасть в админку.
Бонус
Сочетание
'linkPolicy'=>'insecure',
'backendForceSecure'=>true,
Даёт бесконечный редирект)