В данном материале вы узнаете о том, как установить и настроить SSL-сертификат на Joomla и правильно перевести сайт на HTTPS-протокол. Рассмотрены возможные проблемы и приведены дополнительные действия, которые могут понадобиться при установке, а также после установки SSL на сайт.
Что такое SSL?
SSL (Secure Sockets Layer, пер. уровень защищенных сокетов) — это криптографический протокол, который используется, чтобы обеспечить зашифрованное соединение между сайтом и браузером. SSL сертификат позволяет нам использовать HTTPS.
Важно понимать, что по умолчанию все наши сайты загружаются по протоколу HTTP (Hyper Text Transfer Protocol, пер. протокол передачи гипертекста). При этом данные не шифруются и могут быть перехвачены и использоваться третьими лицами.
Вы можете сказать: «Мне нечего скрывать, пускай за мной следят». Но давайте рассмотрим подробнее ряд важных преимуществ, которые вы получаете при использовании SSL.
Преимущества использования SSL
Защита от перехвата
Если вы авторизуетесь на вашем сайте, используя публичный wi-fi (например, в кафе или метро), знайте, что в процессе соединения с вашим сайтом ваши данные могут быть перехвачены, а следовательно, вы можете потерять доступ к сайту (навсегда).
2. Защита клиентов
Первый пункт применим не только к вам как администратору, но и к клиентам. Другими словами у ваших клиентов могут украсть данные для авторизации с вашим сайтом. Поэтому все уважающие себя сайты используют защищенное соединение.
3. Высокие позиции в поисковой выдаче
Сайты, которые загружаются по https при прочих равных условиях получают более высокие позиции от поисковых систем.
4. Интеграции с сервисами
Для безопасности многие сервисы для интеграции с ними начинают требовать передачу данных по защищенному соединению. Следовательно, без наличия SSL сертификата вы не сможете работать с данными сервисами. Например, яндекс-касса, различные веб-пуш уведомления.
5. Визуальные характеристики.
У вашего сайта перед адресом появляется зеленый замочек, или название компании, что для знающих людей, говорит о защите данных, как следствие повышает доверие.
В скором будущем (2 - 3 года) протокол HTTP уйдет в небытие, как небезопасный протокол и будет только защищенное соединение.
Переходим к вопросу, как выбрать SSL-сертификат. С одной стороны, все просто купил сертификат и попросил хостинг-компанию установить сертификат на сайт. Но, есть ряд моментов. И первый — это выбор сертификата.
Виды SSL-сертификатов
SSL сертификаты выпускает ряд компаний (Comodo, Geotrust, Symantec, Thawte) и есть разные уровни сертификатов. Давайте разберемся какой же сертификат нам выбрать.
По уровню доверия сертификаты бывают:
- Self-Signed (самоподписанные) — это сертификат, который вы можете сгенерировать самостоятельно. Браузеры не доверяют таким сертификатам, поэтому при входе на сайт выдается предупреждение о сомнительной безопасности. При взломе такого сертификата вам никто не будет возмещать ущерб. Кроме этого, в некоторых ситуациях, повлекших ущерб третьих лиц, к вам могут быть применены особые штрафные санкции.
- Trusted (доверительные) — выдаются специальными центрами сертификации. Сертификат проверяется в браузере автоматически. В случае взлома сертификата ответственность ложится на на центр сертификации.
Далее будем говорить только о доверительных сертификатах. Сертификат выдается сроком на 1 год, после окончания продлеваем. Стоимость зависит от уровня сертификата.
Количество доменов
Стандартные SSL сертификаты - выпускаются для защиты одного доменного имени.
Wildcard SSL сертификаты - позволяют активировать защиту для одного домена и множества поддоменов.
Язык
Стандартные SSL сертификаты - подходят для всех доменов с латинскими буквами. Не подходят для кириллических доменов.
IDN сертификаты - создаются специально для национальных доменов, в нашем случае кириллических.
Брэнд и усиленная защита
EV (extended validation) сертификаты - сертификаты с расширенной проверкой компании (позвонят по телефону, проверят юридическую информацию). Данный сертификат отличается визуально от всех остальных. В строке браузера перед урл будет зеленая строка с названием вашей компании.
SGC сертификат - это самые мощные сертификаты из доступных на сегодня. Необходим для компаний среднего и крупного бизнеса, а так же если вы хотите хранить данные банковских карт клиентов на своем сайте.
Краткий итог по выбору сертификата
- У вас обычный сайт и один домен - берем стандартный сертификат.
- Если у вас кириллический домен - берем IDN.
- Хотите защитить несколько поддонов - берем WildCard.
- Хотите зеленую строку - берем EV.
- Храните данные банковских карт клиентов на своем сайте - берем SGC.
Приобретение и установка SSL-сертификата
Рассмотрим общие ключевые особенности по приобретению и установке.
Покупка SSL-сертификата
Важные моменты по покупке:
- если вы покупаете стандартный сертификат, то он генерируется автоматически после оплаты и подтверждения вами доменного имени
- доменное имя подтверждается по почте: на E-mail отправляется автоматическое письмо со ссылкой для подтверждения
Для подтверждения требуется электронный адрес вида
Никакие другие почтовые ящики вы указать не сможете, поэтому если у вас еще на домене не заведен один из указанных адресов, то создайте.
Установка SSL-сертификата
После оплаты на E-mail придут данные, которые нужно отправить хостинг-провайдеру, а именно:
- сертификат (начинается со слов begin sertificate),
- приватный ключ
- цепочки сертификатов, если есть (не обязательно)
Всю установку сертификата к домену проделает хостинг компания.
Выделенный IP-адрес
Устанавливать SSL и переводить сайт на https можно как на прежнем IP-адресе, так и на выделенный (отдельный).
Т.е. можно остаться на прежнем IP-адресе, можно получить новый.
Преимущество нового IP-адреса в том, что он закреплен только за вашим доменом, как следствие у него по умолчанию хорошая карма и в случае с рассылками с сайта вероятно попасть в спам в ненужный момент сильно уменьшается.
Выделенный IP, как правило, платный: стоимость уточняйте у своего хостера.
После установки SSL-сертификата ваш сайт будет открываться как по протоколу http, так и по протоколу https. Протокол по умолчанию всегда http, если принудительно не назначен https.
Настройка SSL (https) для Joomla
Что значит нормальная работа по https?
Это когда сайт загружается корректно и у названия сайта горит зеленый значок (во всех браузерах кроме Safari, в этом браузере просто серый замок).
Если же на вашем сайте не все изображения загружаются по протоколу https или найдены другие, вышеперечисленные ошибки, то будет вот такой значок.
Нормальная работа сайта по https предполагает:
- соответствующий протокол для всех внутренних ссылок сайта
- https-протокол для CSS- и JS-файлов, картинок и иных подгружаемых файлов
- отправку данных форм по https
- редирект страниц с http на https
Поэтому сейчас переходим к настройке Joomla для соблюдения всех необходимых условий.
Изменения в файле конфигурации Joomla
- открываем файл configuration.php, находим директиву live_site и прописываем https://site.ru (URL без слэша на конце)
- в этом файле находим опцию force_ssl и ставим значение 2, чтобы админка и внешний интерфейс открывались по протоколу https (если поставим 1, то по защищенному протоколу будет открываться только админка)
Включение SSL в админке Joomla
Опцию force_ssl не обязательно изменять напрямую в файле конфигурации: можно зайти в панель управления Joomla (Система → Общие настройки, вкладка Сервер, раздел Настройки сервера) и выбрать соответствующее значение для опции Включить SSL.
При этом измениться значение опции force_ssl в файле конфигурации Joomla.
При правильной настройке сервера и корректной установке SSL-сертификата опция Включить SSL (force_ssl в файле конфигурации) обеспечивает нормальную работу сайта на Joomla по https: все подключаемые файлы и внутренние ссылки будут работать по защищенному протоколу, а при запросе страниц по протоколу http будет происходить редирект на https.
Дополнительные действия для Joomla
Если приведенные выше действия не обеспечили нормальную работу Joomla по протоколу https, то опробуйте следующие методы:
Изменение в файле .htaccess
В конец файла .htaccess добавляем следующую строку кода:
SetEnvIf X-SSL-Emu on HTTPS=on
Изменение в файле конфигурации
Добавляем в конец файла configuration.php следующую строчку:
$_SERVER['HTTPS'] = 'on';
Получится вот так:
Этот хак должен обеспечить работу сайта по https, но содержимое файла будет обновляться при каждом изменении конфигурации, и указанную выше строчку придется дописывать вновь.
Редирект главной страницы
Открываем файл .htaccess и прописываем следующий код для главного редиректа при запросе вашего сайта через строку браузера.
Код размещаем после строки RewriteEngine On:
RewriteCond %{HTTPS} off RewriteRule ^(abc/def|ghi)(.*)/?$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]
Сейчас ваш сайт всегда будет открываться по протоколу https и будет загружаться со всеми стилями, скриптами и изображениями.
Но! Осталось проделать еще 2 важных пункта.
Пути к изображениям и формам
Если на странице вашего сайта будут найдены изображения, которые загружаются не по протоколу https, то зеленого значка около названия вашего сайта не видать. Сам сертификат при нажатии на него будет говорить, что не все элементы грузятся по безопасному протоколу. В этом случае проверяем и исправляем.
По умолчанию, все картинки, которые вы вставляете через формы вставок картинок или через визуальный редактор, автоматически меняют свой протокол загрузки и за них переживать не стоит.
Но есть изображения, путь которые вставлены в HTML-код и к ним указан абсолютный путь. Вот у таких изображений нужно в пути вместо http:// написать https://.
Изображения могут быть как в текстах, модулях, так и неправильно прописаны, например, в файлах стилях вашего шаблона.
На будущее, если вы хотите указать абсолютный путь (полный) к файлу, то прописываем без указания протокола, например //site.ru/images/photo.jpg
Если на вашем сайте есть формы на подписку, то в коде формы меняем URL, на который будут передаваться данные.
В результате нам нужно проверить все страницы сайта и, при необходимости дописать букву у обозначения протокола.
Как искать изображения, которые загружаются не по https?
- открываем браузер Google Chrome
- заходим на проблемную страницу
- нажимаем Просмотреть код
- открываем консоль и видим список всех элементов, использующих небезопасный протокол
- исправляем
Действия после настройки SSL на Joomla
После того, как будет обеспечена нормальная работа страниц сайта по протоколу Https, необходимо осуществить следующие действия:
Сообщить поисковым системам, что сайт переехал на https
Это важный момент в отношении SEO: для поисковых систем сайт, доступный по разным протоколам, будет считаться разными сайтами, что может создать проблемы для продвижения сайта. Чтобы исключить такие проблемы, необходимо воспользоваться соответствующими инструментами поисковых систем:
Заходим в Яндекс.Вебмастер, ставим соответствующую галочку:
Заходим в robots.txt и дописываем директиву host: https://site.ru
В Google Search Console необходимо будет добавить новый сайт с протоколом https, предварительно подтвердив права на него предложенными сервисом способами.
Проверка карты сайта
Обязательно следует проверить карту сайта на то, что все ссылки начинаются c протокола https.
Дополнительно рекомендуется загрузить обновленную ссылку на карту сайта в Google Search Console и Яндекс.Вебмастер.
Проверка старых редиректов
Если вы делали редиректы через Redj или RSSEO, то проверьте и подправьте, чтобы конечный адрес был с https.
Упоминаемые термины:
Joomla, Админка, Материал, Шаблон, SEO, Карта сайта, JavaScript, configuration.php, Внешний интерфейс, Редирект, JoomShopping, RSSEO