Https И Новые Требования Google При Индексации

Добрый вечер!

Получил от хостинга вот такую рассылку:

""С января 2017 года сайты не имеющие SSL сертификат будут помечаться в Google Chrome как "незащищенные" и доступ к сайту может быть затруднен;""

Вопрос - как сs-cart дружит с https? Как настроить, есть ли какие-нибудь сложности и подводные камни в работе?

Добрый вечер!

Получил от хостинга вот такую рассылку:

""С января 2017 года сайты не имеющие SSL сертификат будут помечаться в Google Chrome как "незащищенные" и доступ к сайту может быть затруднен;""

Вопрос - как сs-cart дружит с https? Как настроить, есть ли какие-нибудь сложности и подводные камни в работе?

CS-Cart прекрасно работает с HTTPS. Есть один нюанс при настройке HTTPS для CS-Cart: если вы настраиваете SSL/TLS в NGINX, который будет проксировать трафик, скажем, в Apache2, то необходимо передавать следующие заголовки:

proxy_set_header          X-Forwarded-Server     secure;proxy_set_header          X-HTTPS                secure;
proxy_set_header          HTTPS                  on;

О механизме определения HTTPS можно узнать из работы функции detectHTTPS() в app/Tygh/Bootstrap.php:

    public static function detectHTTPS($server)
    {
        if (
            (isset($server['HTTPS']) && (strcasecmp($server['HTTPS'], 'on') === 0 || $server['HTTPS'] == '1')) ||
            (isset($server['HTTP_X_FORWARDED_SERVER']) && (strcasecmp($server['HTTP_X_FORWARDED_SERVER'], 'secure') === 0 || $server['HTTP_X_FORWARDED_SERVER'] == 'ssl')) ||
            (isset($server['SCRIPT_URI']) && (strpos($server['SCRIPT_URI'], 'https') === 0)) ||
            (isset($server['HTTP_HOST']) && (strpos($server['HTTP_HOST'], ':443') !== false)) ||
            (isset($server['HTTP_X_FORWARDED_HTTPS']) && (strcasecmp($server['HTTP_X_FORWARDED_PROTO'], 'on') || $server['HTTP_X_FORWARDED_PROTO'] == '1')) ||
            (isset($server['HTTP_X_FORWARDED_PROTO']) && $server['HTTP_X_FORWARDED_PROTO'] == 'https') ||
            (isset($server['HTTP_X_HTTPS']) && (strcasecmp($server['HTTP_X_HTTPS'], 'on') === 0 || $server['HTTP_X_HTTPS'] == '1')) ||
            (isset($server['SERVER_PORT']) && $server['SERVER_PORT'] == 443)
        ) {
            return true;
        }
    return false;
}

Всё это необходимо для работы т.н. частичной активации HTTPS. Как мне кажется, эта функция вскоре будет бесполезной, а потому рассчитывайте на включение HTTPS глобально. Если вам нужна будет помощь с SSL/TLS – пишите в ЛС или оставьте вопрос в этой теме.

Добрый вечер!

Хочу приобрести сертификат, каков мой дальнейший порядок действий? Что нужно сообщить хостеру?

Добрый вечер!

Хочу приобрести сертификат, каков мой дальнейший порядок действий? Что нужно сообщить хостеру?

Так и напишите хостеру, что стребуется сертификат, его его заказать и могут ли они оказать помощь в установке

Так и напишите хостеру, что стребуется сертификат, его его заказать и могут ли они оказать помощь в установке

Всё верно. Вы также можете передать им мои рекомендации по настройке NGINX, если таковой используется на вашем сервере.

По поводу заголовков, хочется уточнить. Мой хостер добавил заголовки, которые указал Глеб, но с 2-умя возникли трудности:

proxy_set_header X-Forwarded-Server secure;
proxy_set_header X-HTTPS secure;


Хостер написал, что их пришлось удалить, так как они вызывают циклический редирект и все пользователи сервера, кто использует cs-cart, получили неработоспособные веб-сайты.

Что посоветуете в таком случаем?

По поводу заголовков, хочется уточнить. Мой хостер добавил заголовки, которые указал Глеб, но с 2-умя возникли трудности:

proxy_set_header X-Forwarded-Server secure;
proxy_set_header X-HTTPS secure;

Хостер написал, что их пришлось удалить, так как они вызывают циклический редирект и все пользователи сервера, кто использует cs-cart, получили неработоспособные веб-сайты.

Что посоветуете в таком случаем?

Заголовки можно не добавлять, но, вероятно, потребуется поправить код в app/Tygh/Bootstrap.php в функции detectHTTPS().

Заголовки можно не добавлять, но, вероятно, потребуется поправить код в app/Tygh/Bootstrap.php в функции detectHTTPS().

Если будет время, поподробнее расскажете, что конкретно удалить/добавить в этой функции? Премного благодарен.

Если будет время, поподробнее расскажете, что конкретно удалить/добавить в этой функции? Премного благодарен.

Присоединяюсь к вопросу. Мой хостер вообще не может (или не хочет) прописывать какие-либо заголовки

http://kbrus.cs-cart.com/https-whole-store

для новых версий CS-Cart от 4.4.1 и выше нужно делать вот это ?

Чтобы разрешить индексацию страниц, если включен модуль <b>SEO</b>:

  1. Откройте файл func.php, находящийся в директории addons/seo Вашей установки CS-Cart.
  2. Найдите и замените эту часть кода:
    if (defined('HTTPS')) {
    return false;
    }
    на эту:
    if (defined('HTTPS')) {
    // return false;
    }
    if (defined('HTTPS') && fn_get_storefront_protocol() == 'http') {
        return false;
    }
а в моей версии это выглядит так
Тоже надо править на // return false;
у меня весь сайт на хттпс

Добрый день!

Подскажите, пожалуйста, как можно проверить, нормально ли сайт переехал на https? (Duhpoleta.ru)

 if (defined('HTTPS') && fn_get_storefront_protocol() == 'http') {
        return false;
    }

Тоже хотелось бы понять на счет этого, поясните кто-нибудь, это появилось в самой последней версии 4.5.2. Нужно кавычить или одной проблемой меньше?

Эти изменения нужны только в версиях 3.0.х и 2.x.x

http://kbrus.cs-cart.com/https-whole-store

для новых версий CS-Cart от 4.4.1 и выше нужно делать вот это ?

Чтобы разрешить индексацию страниц, если включен модуль SEO:

  1. Откройте файл func.php, находящийся в директории addons/seo Вашей установки CS-Cart.
  2. Найдите и замените эту часть кода:
    if (defined('HTTPS')) {
    return false;
    }
    на эту:
    if (defined('HTTPS')) {
    // return false;
    }

 if (defined('HTTPS') && fn_get_storefront_protocol() == 'http') {
        return false;
    }

Тоже хотелось бы понять на счет этого, поясните кто-нибудь, это появилось в самой последней версии 4.5.2. Нужно кавычить или одной проблемой меньше?

Добрый день!

Подскажите, пожалуйста, как можно проверить, нормально ли сайт переехал на https? (Duhpoleta.ru)

Насколько я понимаю, на всех страницах должен быть замочек в адресной строке, у вас не защищена страница контакты https://duhpoleta.ru/kontakty/?company_id=1

Скорее всего из-за того, что там вставлен рисунок с вашими адресами - рисунок вставляли через админку еще без сертификата, зайдите на нее заново и отредактируйте рисунок - в пути у него добавьте S к HTTP = (HTTPS)

Хоть тема и старая, но многим полезно:
Правильнее задавать относительный путь к изображениям:
/images/pic.png