Перевод ShopCMS полностью на HTTPS
#1
Отправлено 26 March 2015 - 10:02 PM
Нормальной инструкции не получится, т.к. слишком индивидуально все и надо многое править по месту, но кому-то может помочь.
1. Получаем ключ и сертификат.
Можно купить (или озадачить хостера, чтобы он купил), можно получить бесплатный на https://startssl.com или https://buy.wosign.c...ee/FreeSSL.html
Я получал на первом.
В минусе бесплатности условно низкий уровень шифрования SHA-1 и невозможность получения сертификата на домены like "store", "pay", "shop", "bank", "money", "sale", "buy", "trade" and other payment related words.
Мне было отказано в получении FreeSSL-сертификата на домен shop3.badisoft.ru, хотя без проблем выдан сертификат на cpu.badisoft.ru
2. приспосабливаем их на сервер или поручаем хостеру. Собственно, п.1 и п.2 это штатные хостерские процедуры-за-деньги. Я этим занимался самостоятельно только потому, что у меня свои сервера.
https://www.easycodi...-ip-adrese.html
3. делаем безусловное перенаправление с http на https:
http://firstwiki.ru/..._Apache_и_Nginx
4. убираем (обычно в head.tpl.html, но не факт, что нет в других местах) у загрузок JS-файлов и CSS-файлов протокол http:
К примеру, http://jquery.google.com/jquery.js заменяем на //jquery.google.com/jquery.js или вообще сразу на https://
Собственно, вообще везде убираем принудительный выбор протокола http.
Вкратце так. Как получилось можно увидеть на сайте в подписи.
PS. От некоторых блоков и сервисов пришлось отказаться, т.к. они в принципе не работали под HTTPS, только по HTTP.
#2
Отправлено 11 September 2016 - 06:59 PM
#3
Отправлено 11 September 2016 - 07:55 PM
Куда я не внедрил HTTP/2?Очень интересная тематика. А почему не внедрили http2?
#4
Отправлено 11 September 2016 - 08:15 PM
Скажите а ставили shopcms с использованием http/2 ? Есть примеры результата? Спасибо
#5
Отправлено 08 December 2016 - 10:10 PM
#6
Отправлено 08 December 2016 - 10:27 PM
Очевидно. И модуль генерации yandex.xml, если он используется.А модуль sitemap тогда тоже надо менять, чтобы список был с htpps?
И в robots.txt префиксы сменить.
PS. А. да! Еще в яндекс.вебмастере надо будет создать HTTPS-зеркало сайта и прописать его основным зеркалом.
#7
Отправлено 25 January 2017 - 03:52 PM
#8
Отправлено 25 January 2017 - 08:35 PM
Лучше сразу взять не битрикс и сэкономить еще одну кучу времени .только эти заморочки помойму излишни, лучше сразу взять битрикс и сэкономить кучу времени
#9
Отправлено 31 January 2017 - 07:07 PM
#10
Отправлено 31 January 2017 - 07:26 PM
Это примерно как мизинцем ноги в ухе ковырять. Требует умения, хотя в принципе осуществимо, но нахрен не надо.А в самом движке нет возможности перенаправлять все запросы на протокол https ? Средствами PHP скажем.
Переадресация http->https в .htaccess - три простейших строки.
#11
Отправлено 01 February 2017 - 07:58 AM
И оно таки работает.Заказ в защищенном режиме
Включите эту галочку, если Вы хотите, чтобы оформление заказов производилось в защищенном режиме SSL.
Для корректной работы этой функции на сервере должен быть установлен SSL сертификат.
Правил файл .htaccess - работает, только если человек идет по ссылке с www впереди. А прямая ссылка на товар типа http://site.com/product_100.html не переводит сайт в https (верней как то через раз проходит номер). Если же идти типа с www вот так http://www.site.com/product_100.html то все ОК
p.s. Перепробовал все возможные способы прописывания переадресации в .htaccess у меня работает( и то через раз только) такой вариант:
RewriteEngine on RewriteCond %{HTTP_HOST} ^site\.com$ [NC] RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} ^http$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Да в начале еще поставил вот такое, (оно как раз и переводит прямые ссылки на товар с www впереди):
RewriteCond %{HTTP_HOST} ^www.site\.com$ [NC] RewriteRule ^(.*)$ https://site.com/$1 [R=301,L]
p.s.s. Понятно что вместо site.com - мой домен.
#12
Отправлено 01 February 2017 - 02:32 PM
Отделите мух от котлет .Правил файл .htaccess - работает, только если человек идет по ссылке с www впереди. А прямая ссылка на товар типа http://site.com/product_100.html не переводит сайт в https
переадресация с www на без-www - одна переадресация.
переадресация с http на https - другая переадресация.
Хотя, думаю, их можно и объединить.
У меня нет апача, я пользую nginx и апач (синтаксис .htaccess) знаю плохо.
А в nginx у меня написано так:
server { listen 80; server_name badisoft.ru www.badisoft.ru soft.badisoft.ru; rewrite ^(.*) https://badisoft.ru$1 permanent; } server { listen 443 ssl; server_name www.badisoft.ru soft.badisoft.ru; rewrite ^(.*) https://badisoft.ru$1 permanent; }Т.е. все приходящие на 80-й порт (http) www, soft и badisoft.ru переадресуются сразу на https://badisoft.ru
Все приходящие на 443-й порт (https) www и soft тоже переадресуются на https://badisoft.ru
Думаю, эти два правила можно как-то объединить, но я особо не разбирался.
В конце концов, можно вообще на каждую переадресацию отдельное правило написать.
Разных способов много. У меня с десяток в "напоминалке" записано. Как раз потому, что я синтаксис .htaccess плохо знаю. Связано это обилие способов с тем, что хостинг, как правило, построен по системе фронтенд-бэкенд и то, как приходит запрос на фронтенд вовсе не означает, что именно в таком виде (по такому протоколу) он придет и на бэкенд, которым мы управляем с помощью .htaccess. Т.е. на бэкенд запрос может попасть уже в виде обычного http-запроса, хотя входил по https. Чтобы как-то отличать и существуют заголовки типа HTTP:X-Forwarded-Protocol и подобные, где прямо или косвенно указано, как в реальности входил запрос. Ну а конкретное решение надо подбирать либо методом тыка, либо просто спросить у хостера.Перепробовал все возможные способы прописывания переадресации в .htaccess у меня работает( и то через раз только) такой вариант:
PS. сейчас badisoft.ru проверять не стоит, т.к. в силу утери доверия у сертификатов от startssl (51-я версия FireFox уже вообще сайты с этими сертификатами отказывается показывать) я отключил https на сайте пока не настрою автополучение сертификатов через lets encrypt.
#13
Отправлено 01 February 2017 - 06:53 PM
#14
Отправлено 01 February 2017 - 07:42 PM
Честно говоря, не очень понимаю Вашей проблемы.Прописав правило c www и без него, я хотя бы немного добился переадресации на тот же https
Поставьте себе задачу "разобраться, как все http://www.site.ru, http://site.ru и https://www.site.ru редиректить на https://site.ru" и решайте ее.
Тем более, Вы уже знаете о том, что инфо о входящем протоколе передается в заголовке HTTP:X-Forwarded-Protocol.
Задача не сложная, вполне решаемая путем чтения Яндекса. Как путем нормального понимания синтаксиса библиотеки mod_rewrite, так и путем "научно-тыкового" применения готовых примеров из поисковика. Которых ДО ХРЕНА, т.к. Вы ни разу не уникальны с такой задачей.