Magento 2: How to improve Magento 2 speed for development on local machine

Пытаясь усилить безопасность web, Google уже в течение какого-то времени проталкивает свою инициативу HTTPS everywhere («повсеместный HTTPS»). Помимо обеспечения безопасности для конечного пользователя (благодаря шифрованию трафика), наличие HTTPS скорее всего также приведёт к его использованию в качестве показателя для ранжирования сайтов.

Ещё один интересный факт о намерениях Google: начиная с января 2017 года браузеры Chrome будут использовать специальную иконку в адресной строке для маркировки как небезопасных некоторых HTTP-страниц. Это как правило страницы, на которых присутствуют формы ввода пароля или данных кредитных карт. Это можно расценивать как часть большого плана по маркировке вообще всех HTTP-сайтов как небезопасных, в будущем подобного поведения можно ожидать и от других браузеров.

В этой статье мы рассмотрим основные этапы конфигурирования (с учётом подводных камней и некоторых тонкостей), которые необходимы для переключения вашего магазина на базе Magento на протокол HTTPS.

Включаем HTTPS everywhere

Настройка Magento для работы по HTTPS выполняется довольно просто. Если предположить, что ваш сервер сконфигурирован правильно и у вас есть действующий SSL сертификат, то всё что вам останется сделать это изменить параметры конфигурации.

В меню System > Configuration > Web на вкладке Unsecure обновите ваш адрес в поле Base URL так, чтобы он начинался с https (например, https://www.example.com/), а на вкладке Secure для параметров Use Secure URLs in Frontend и Use Secure URLs in Admin выберите значения Yes.

Теоретически, это все действия, которые требуется выполнить чтобы включить поддержку HTTPS на сайте, но, как часто бывает в подобных случаях, всё не так просто. Рассмотрим несколько типичных проблем, которые могут возникнуть после выполнения указанных действий и то как решить эти проблемы.

Перенаправления

В зависимости от настроек вашего магазина вы можете столкнуться с ситуацией, когда все запросы на старые HTTP адреса страниц сайта будут перенаправляться на безопасную главную страницу (уже работающую по HTTPS).

Пример:

http://www.example.com/some-product.html перенаправляется на https://www.example.com/, что конечно же неверно.
Ожидаемый результат в данном случае это перенаправление на https://www.example.com/some-product.html.
Для предотвращения перенаправления на главную страницу необходимо установить параметр Auto-redirect to Base URL в значение No. Данный параметр находится также в разделе System > Configuration > Web.

Любопытно, но отключение перенаправления вытянет наружу другую проблему: теперь будут доступны и www и не-www версии вашего сайта, даже если вы этого не хотели. Эта проблема может быть решена добавлением примерно таких правил в конфигурационные файлы вашего веб-сервера:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,L,R=301]

Правила приведены для веб-сервера Apache. Они принудительно добавляют https и www (в случае их отсутствия) всем входящим запросам.

Смешанное содержимое

Ещё одна типичная проблема - это наличие на сайте статического контента (в основном это изображения, css файлы и js-скрипты), пути к которым жёстко вбиты в код с указанием в пути http протокола. Подобная ситуация приведёт к тому что браузер будет выводить предупредительные сообщения о смешанном содержимом и небезопасных страницах.

Лучший способ решения этой проблемы – ревизия ваших шаблонов, layout-ов, CMS блоков, страниц и прочих мест на предмет исправления протокола в имеющихся ссылках c http на https. Альтернативный вариант – использование в адресах конструкций без указания протокола, например:
//www.example.com/skin/frontend/rwd/default/images/media/logo.png

Magento EE

Если вы планируете запускать сайт по HTTPS и используете при этом Magento Enterprise Edition (EE), убедитесь что используете версию 1.14.1 или выше, поскольку в предыдущих версиях при использовании HTTPS отключено кеширование страниц.

HTTPS для CDN

При использовании HTTPS вместе с CDN, вы можете столкнуться с дополнительными расходами на покупку дополнительных SSL сертификатов для входящих в состав CDN субдоменов. Будьте готовы также к тому, что ваш провайдер CDN может затребовать с вас дополнительную плату за установку SSL сертификатов на сервер. Могут конечно существовать и бесплатные опции, список которых у каждого провайдера свой, но как показывает практика, все они далеки от идеала. Не забывайте об этом при переводе вашего сайта на HTTPS.

На этом нашу статью на сегодня закончим. Если вы уже перевели ваш сайт на работу по HTTPS протоколу и столкнулись с проблемами, подобными описанным (или с какими-то неописанными) – дайте нам знать в комментариях.

Удачного вам веб-серфинга и да прибудет с вами SSL!

Это перевод статьи наших друзей из компании Inchoo, оригинал можно почитать здесь:

Enter HTTPS (article by Sasa Brankovic)