Перевод сайта Joomla на HTTPS состоит из трёх шагов: установить SSL-сертификат на сервере, включить Force HTTPS в разделе Global Configuration Joomla и добавить 301-редирект, чтобы старые HTTP-ссылки работали корректно. Третий шаг содержит особенность, специфичную для Joomla, из-за которой ошибаются почти все, и она разбирается ниже, перед кодом.
Короткий ответ: установите сертификат через панель хостинга, затем перейдите в System > Global Configuration > Server и установите значение Force HTTPS в Entire Site. Чтобы добавить редирект на уровне сервера, сначала переименуйте файл htaccess.txt в корне Joomla в .htaccess, потому что Apache игнорирует файл с исходным именем.
SSL (сокращение от Secure Sockets Layer, хотя каждый выпускаемый сегодня сертификат использует TLS) — это то, что убирает метку «Not Secure» из адресной строки. Если хотите разобраться с основами, прочитайте статью о том, что такое SSL-сертификат. Эти шаги применимы к Joomla 5 и Joomla 6.
Какой способ подходит для вашей настройки Joomla
| Ваша настройка | Как получить сертификат | Примерное время |
|---|---|---|
| Управляемый хостинг или cPanel с AutoSSL | Выпустить бесплатный сертификат в панели, затем включить Force HTTPS | 10 минут |
| Хостинг без инструмента SSL или собственный VPS | Certbot для получения сертификата Let’s Encrypt, затем включить Force HTTPS | 20 минут |
| Платный сертификат (OV, EV или wildcard) | Сформировать CSR, установить вручную, затем включить Force HTTPS | 30 минут плюс время валидации |
| Cloudflare перед сайтом | Сертификат на исходном сервере, режим Cloudflare — Full (strict), включена опция Behind Load Balancer | 15 минут |
Сделайте резервную копию перед началом работы. Akeeba Backup — обычный выбор для Joomla. Опасность этой процедуры в том, что можно потерять доступ к собственной админ-панели, а резервная копия плюс шаг восстановления, описанный ниже в разделе про configuration.php, помогут выйти из этой ситуации.
Какой SSL-сертификат использовать для сайта на Joomla?
Начните с бесплатного варианта. Большинство хостингов автоматически выпускают бесплатные сертификаты Let’s Encrypt, а шифрование, которое обеспечивает бесплатный сертификат, идентично платному. Разница между одним SSL-сертификатом для Joomla и другим заключается в том, что именно проверил центр сертификации перед выпуском, и что вы получаете, если что-то пойдёт не так.
| Тип | Что проверяет CA | Срок выпуска | Подходит для |
|---|---|---|---|
| Domain Validation (DV) | Подтверждение контроля над доменом | Минуты | Блоги, сайты-визитки, большинство установок Joomla |
| Organization Validation (OV) | Домен и зарегистрированную организацию | 1-3 рабочих дня | Корпоративные сайты, зоны для участников, клиентские порталы |
| Extended Validation (EV) | Полную юридическую и операционную проверку компании | 1-3 рабочих дня | Магазины, финансовые сервисы, везде, где важна идентичность |
Если ваша установка Joomla обслуживает поддомены, wildcard-сертификат покроет их все одним сертификатом. Не уверены, какой тип вам нужен? SSL Wizard поможет определиться за несколько вопросов.
Бесплатный сертификат перестаёт быть правильным выбором в четырёх случаях: вы принимаете платежи и хотите гарантию, обеспечиваемую сертификатом; вам нужны подтверждённые данные организации внутри сертификата, а не только подтверждение контроля над доменом; у вас есть поддомены, и бесплатный wildcard-сертификат неудобно выпускать на вашем хостинге; или ваш хостинг не автоматизирует продление. Последний пункт важнее, чем кажется, и следующий раздел объясняет почему.
Установите сертификат на сервер
Joomla не устанавливает сертификаты. Этот шаг выполняется на сервере, до того как вы вообще начнёте работать с Joomla.
Через панель хостинга
Ищите SSL/TLS, Let’s Encrypt или AutoSSL в панели управления. В cPanel это находится в разделе Security. Выпустите сертификат как для основного домена, так и для версии с www, иначе тот, который вы пропустили, вызовет предупреждение о несовпадении имени.
Сертификаты Let’s Encrypt действуют 90 дней и должны автоматически продлеваться примерно за 30 дней до истечения срока. Когда эта автоматизация выходит из строя, обычно после переноса домена или изменения DNS, сайт продолжает работать неделями, а затем без предупреждения становится незащищённым. Убедитесь, что автопродление включено, и после первой ожидаемой даты продления проверьте сертификат с помощью SSL Checker. Если дата истечения сдвинулась вперёд, продление работает.
На VPS без панели управления
Используйте Certbot, клиент Let’s Encrypt. Он выпускает сертификат из командной строки, настраивает Apache или Nginx и устанавливает собственный таймер продления.
Установка платного сертификата вручную
- Сформируйте CSR. В Joomla нет собственной функции создания CSR, поэтому используйте генератор CSR или руководства по CSR для вашего сервера.
- Отправьте его в центр сертификации и пройдите валидацию.
- Установите сертификат, приватный ключ и промежуточные сертификаты. В cPanel это делается в разделе SSL/TLS > Manage SSL sites, что описано в руководстве по установке для cPanel. Другие платформы описаны в руководствах по установке SSL.
- Проверьте перед тем, как продолжить. Запустите SSL Checker и, если что-то выглядит не так, посмотрите как проверить, правильно ли установлен сертификат.
Не пропускайте промежуточные сертификаты. Установите основной сертификат без цепочки — и большинство десктопных браузеров всё равно покажут замочек, потому что они кэшируют промежуточные сертификаты, увиденные ранее на других сайтах. Мобильные браузеры, платёжные шлюзы и клиенты API дадут сбой. Если вы столкнулись с проблемой цепочки, см. раздел про просроченные промежуточные сертификаты.
Как включить принудительный HTTPS в Joomla
Когда на сервере уже работает сертификат, скажите Joomla использовать его. Войдите в административную панель и перейдите в System > Global Configuration > Server. В блоке Server в верхней части этой вкладки вы найдёте Force HTTPS, и у этой настройки три состояния, а не простое включено/выключено.
- None. Joomla ничего не делает. Страницы доступны как по HTTP, так и по HTTPS.
- Administrator Only. Административная панель, включая экран входа, принудительно переводится на HTTPS, а публичный сайт остаётся без изменений. Это состояние стоит использовать, пока сертификат ещё проходит валидацию, или на сайте, который вы переносите поэтапно. Ваш собственный пароль сразу перестаёт передаваться в открытом виде, без каких-либо изменений для посетителей.
- Entire Site. Всё принудительно переводится на HTTPS. Это то, что нужно выбрать, когда работоспособность сертификата подтверждена.
Выберите Entire Site и сохраните. Проверьте, что сертификат корректно работает на вашем домене, прежде чем это делать. Если Force HTTPS включён, а сертификат сломан или отсутствует, административная панель тоже становится недоступной, и вам понадобится шаг восстановления, описанный ниже.
Эти инструкции относятся к Joomla 5 и Joomla 6 — двум поддерживаемым веткам. Joomla 6.0 вышла в октябре 2025 года, а Joomla 5 перестанет получать функциональные обновления 13 октября 2026 года, после чего до октября 2027 года будут выходить только патчи безопасности. Если вы всё ещё используете Joomla 3, которая достигла конца жизненного цикла в августе 2023 года, эта настройка находится в другом месте, поэтому сначала обновитесь, прежде чем следовать этому руководству.
Настройка Force HTTPS через configuration.php
Каждая настройка из Global Configuration хранится в файле configuration.php в корне Joomla. Редактирование этого файла через FTP — это способ вернуть доступ, когда Force HTTPS заблокировал вам доступ к административной панели, то есть именно в той ситуации, когда выпадающий список уже недоступен.
Нужная строка выглядит так:
public $force_ssl = 2;
Значения соответствуют трём состояниям: 0 — None, 1 — Administrator, а 2 — и сайт, и административная панель. Установка обратно на 0 через FTP отменяет блокировку за секунды.
Рядом вы найдёте ещё одну строку:
public $live_site = '';
Многие руководства по HTTPS для Joomla советуют заполнить это поле вашим https-адресом, и многие из них пишут это как var $live_site. Такой синтаксис относится к Joomla 1.5, которая использовала синтаксис классов PHP 4 и была прекращена в 2012 году. Современная Joomla использует public, а эта настройка документирована как необязательная. Оставьте её пустой, если у вас нет конкретной причины закреплять URL сайта. Она не отвечает за включение HTTPS, и её неправильная настройка — распространённый способ сломать сайт на Joomla. Именно $force_ssl выполняет всю работу.
Добавление 301-редиректа в .htaccess
Force HTTPS обрабатывает запросы, которые доходят до Joomla. Редирект на уровне сервера быстрее, так как он происходит до запуска PHP, и он продолжает работать, даже если Joomla когда-либо будет недоступна. На Apache это означает файл .htaccess, и здесь есть момент, который почти все руководства пропускают.
Сначала переименуйте htaccess.txt
Joomla поставляется с файлом htaccess.txt, а не .htaccess. Apache игнорирует его под этим именем. Если вы вставите правила редиректа в файл под названием htaccess.txt, или в файл .htaccess, которого ещё не существует, ничего не произойдёт, и никакой ошибки, объясняющей причину, не будет.
- Переименуйте htaccess.txt в .htaccess в корне Joomla. Не редактируйте htaccess.txt, оставляя его под старым именем: обновление Joomla перезапишет этот файл, и все ваши изменения будут утеряны.
- Выполните переименование до включения опции Use URL Rewriting в Global Configuration. Если включить перезапись сначала, Joomla начнёт генерировать URL без index.php, которые Apache не сможет корректно маршрутизировать, из-за чего каждая страница, кроме главной, будет возвращать 404.
Затем добавьте редирект
Добавьте эти строки в начало файла .htaccess, выше собственного блока перезаписи Joomla:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Две детали определяют, будет ли это работать. Условие должно быть off, то есть «перенаправлять, когда запрос ещё не защищён». Если написать on, что встречается в удивительно большом количестве опубликованных фрагментов кода, правило будет срабатывать только на запросах, которые уже используют HTTPS, и снова отправлять их на HTTPS, что создаёт цикл. А флаг R=301 — это то, что делает редирект постоянным. Без него, или с обычным R, вы получите временный 302 или внутреннюю перезапись, которая никогда не сообщит поисковым системам о переносе.
На Nginx
Nginx не использует .htaccess и не читает правила перезаписи Apache. Вместо этого отредактируйте блок server:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
Проверьте конфигурацию с помощью nginx -t, затем перезагрузите её командой systemctl reload nginx.
Устраните последствия переключения
Очистите кэш Joomla. Это первое, что нужно сделать, и то, что забывают чаще всего. Joomla с удовольствием продолжит отдавать закэшированные страницы, полные HTTP-разметки, из-за чего завершённая миграция будет выглядеть незавершённой. Перейдите в System > Clear Cache в панели Maintenance, а также очистите ваш CDN, если вы его используете.
Устраните смешанный контент. Страница, отдаваемая по HTTPS, но всё ещё загружающая изображение, скрипт или таблицу стилей по HTTP, — это смешанный контент. Браузеры по-разному относятся к этим двум категориям: медиафайлы обычно можно подняться до HTTPS автоматически, поэтому браузер просто запрашивает их по HTTPS вместо того, чтобы выдать ошибку, в то время как скрипты и таблицы стилей относятся к категории, которую можно блокировать, и они просто отклоняются, из-за чего страница может отобразиться совершенно без оформления. В Joomla обычными источниками этой проблемы являются жёстко заданные URL в переопределениях шаблонов, настройках модулей и сторонних расширениях. Консоль браузера укажет проблемный ресурс. Наше руководство о том, как исправить смешанный контент, подробно рассматривает диагностику.
Обновите карту сайта и robots.txt. Повторно сгенерируйте XML-карту сайта, чтобы в ней были перечислены https-адреса, и проверьте, что robots.txt не ссылается ни на что через http-версию.
Устранение проблем с SSL в Joomla
Слишком много редиректов после включения Force HTTPS
Это самая распространённая ошибка HTTPS в Joomla, и она происходит потому, что два стандартных совета несовместимы друг с другом. Если прокси, такой как Cloudflare, завершает TLS-соединение и затем обращается к вашему серверу через обычный HTTP, Joomla никогда не видит HTTPS-запрос. Force HTTPS решает, что посетитель пришёл незащищённым способом, и перенаправляет его на HTTPS, прокси снова отвечает на этот запрос через HTTP, и цикл повторяется, пока браузер не сдастся с ошибкой ERR_TOO_MANY_REDIRECTS.
Есть два способа решения, и обычно нужны оба:
- Установите режим шифрования SSL/TLS в Cloudflare на Full (strict) и держите действующий сертификат на исходном сервере. Режим Flexible, который многие популярные руководства по Joomla до сих пор рекомендуют как быстрый бесплатный вариант, — именно то, что создаёт цикл.
- Переключите Behind Load Balancer на Yes. Эта настройка находится на той же вкладке System > Global Configuration > Server, ниже, в блоке Proxy. Она указывает Joomla доверять заголовку переданного протокола от прокси, вместо того чтобы искать прямое HTTPS-соединение.
Одна предосторожность в отношении этой второй настройки: включайте Behind Load Balancer только если ваш сайт действительно находится за прокси, балансировщиком нагрузки или CDN. На обычном хостинге доверие к заголовку, отправленному кем угодно, ослабляет безопасность без какой-либо выгоды.
Другие распространённые проблемы
| Симптом | Причина | Решение |
|---|---|---|
| Нет доступа к административной панели | Force HTTPS включён, а сертификат отсутствует или сломан | Установите $force_ssl обратно на 0 в configuration.php через FTP, исправьте сертификат, затем снова включите |
| Правила редиректа не работают | Они были записаны в htaccess.txt, или в файл .htaccess, которого не существует | Переименуйте htaccess.txt в .htaccess |
| Каждая страница, кроме главной, возвращает 404 | URL Rewriting была включена до переименования | Переименуйте файл, или отключите перезапись, пока не сделаете это |
| Замочек отсутствует только на некоторых страницах | Смешанный контент на этих страницах | Найдите HTTP-ресурс в консоли браузера |
| Сайт работал нормально, но через недели стал незащищённым | Сертификат Let’s Encrypt истёк из-за сбоя продления | Переиздайте сертификат, затем подтвердите автопродление в панели |
| Работает в браузере, но не работает для приложения или шлюза | Неполная цепочка сертификата | Установите полный пакет CA, повторно проверьте с помощью SSL Checker |
| Несовпадение имени на www или основном домене | Сертификат покрывает только одно из двух имён | Переиздайте сертификат, покрывающий оба. См. common name invalid |
Если сертификат установлен, а сайт всё равно сообщает о незащищённости, руководства по ошибкам SSL помогут разобраться с конкретными кодами ошибок браузера.
После переключения: чек-лист SEO
- Добавьте HTTPS-свойство в Google Search Console. HTTP-свойство не даёт отчётов по HTTPS-адресам. Добавьте новое, или используйте свойство типа Domain, которое охватывает оба варианта.
- Отправьте повторно карту сайта с https-адресами.
- Проверьте канонические теги — они должны указывать на https в вашем расширении SEF или SEO.
- Обновите аналитику и любые сторонние сервисы, которые хранят адрес вашего сайта.
Ожидайте некоторые колебания. Google рассматривает переход с HTTP на HTTPS как перенос сайта с изменением URL, поэтому показы будут какое-то время отображаться раздельно между вашими HTTP- и HTTPS-свойствами, а позиции в выдаче часто колеблются несколько недель, прежде чем стабилизироваться. До тех пор пока каждая страница открывается и 301-редиректы настроены, исправлять ничего не нужно.
Когда HTTPS работает стабильно уже некоторое время, рассмотрите HSTS — механизм, который заставляет браузеры полностью отказываться от обычного HTTP для вашего домена. Оставьте директиву preload отключённой на первое время, так как её сложно отменить, и она сделает недоступным любой поддомен, который всё ещё работает по HTTP.
Часто задаваемые вопросы
Сначала установите SSL-сертификат на своём сервере — через панель хостинга или вручную. Затем войдите в административную панель Joomla, откройте System > Global Configuration > Server и установите Force HTTPS в значение Entire Site. Сама Joomla не устанавливает сертификаты. Она лишь принудительно применяет тот, который уже есть на вашем сервере.
На вкладке System > Global Configuration > Server, в блоке Server в верхней части. Она предлагает три состояния: None, Administrator Only и Entire Site. Administrator Only полезна, пока сертификат ещё проходит валидацию, так как она защищает вход в систему без изменений для посетителей.
Почти всегда потому, что прокси, такой как Cloudflare, завершает TLS-соединение и передаёт обычный HTTP на ваш сервер, из-за чего Joomla думает, что каждый запрос пришёл незащищённым, и снова перенаправляет его. Установите режим шифрования Cloudflare на Full (strict) вместо Flexible и переключите Behind Load Balancer на Yes, в блоке Proxy раздела Global Configuration. Включайте эту настройку только если ваш сайт действительно находится за прокси.
Нет. Выпадающий список в Global Configuration записывает то же значение, которое хранится в файле. Редактирование configuration.php важно в одной ситуации: когда Force HTTPS заблокировал вам доступ к административной панели, можно установить $force_ssl обратно на 0 через FTP. Игнорируйте старые руководства, которые советуют заполнить var $live_site. Этот синтаксис был отменён вместе с Joomla 1.5 в 2012 году, и в любом случае эта настройка необязательна.
Сначала проверьте имя файла. Joomla поставляется с файлом htaccess.txt, и Apache игнорирует его под этим именем, поэтому правила, вставленные в него, никогда не выполняются. Переименуйте его в .htaccess. Если файл правильный, проверьте условие: оно должно читаться как RewriteCond %{HTTPS} off. Написанное как «on», оно совпадает только с запросами, которые уже защищены, что создаёт цикл редиректов вместо самого редиректа.
К Joomla 5 и Joomla 6, двум веткам, поддерживаемым в настоящее время. Joomla 6.0 была выпущена в октябре 2025 года. Joomla 5 получает функциональные обновления до 13 октября 2026 года и патчи безопасности до октября 2027 года. Joomla 3 достигла конца жизненного цикла в августе 2023 года и организует свою конфигурацию иначе, поэтому обновитесь, прежде чем следовать этим шагам.
Переносите другую платформу или хотите узнать общую процедуру? См. наше руководство о том, как перевести сайт с HTTP на HTTPS.
Сэкономьте 10% на SSL-сертификатах при заказе сегодня!
Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

