Настройка SSL

Тема в разделе "Ошибки и их решения", создана пользователем WizAnd, 30 апр 2015.

  1. Yurok_1

    Yurok_1 Новичок

    Сообщения:
    16
    Симпатии:
    4
    Наткнулся на модификатор который решил вопрос, теперь весь контент с сайта отlается по https
    http://www.opencart.com/index.php?r...740&filter_search=https&filter_download_id=44
    также там есть ссылка в комментах на то чо делал автор. я кроме htacess выполнил и работает.
    http://stackoverflow.com/questions/36272499/opencart-2-2-x-ssl-for-all-request/37996993#37996993
     
    Bkmz нравится это.
  2. 6yka

    6yka Пользователь

    Сообщения:
    37
    Симпатии:
    1
    Обратил внимание, что при переходе на SSL возникает ошибка с заказами. Все старые заказы выдают ошибку и нельзя у них поменять статус (тоже вылетает ошибка).
    Это относится к заказам, сделанным до применения сертификата и редиректа на https
    Решается заменой в базе у всех заказов старого урла магазина с http на https. Пользуюсь софтинкой для работы с базой, т.е. сделал автозамену за пару кликов.
     
    Ravilr нравится это.
  3. 6yka

    6yka Пользователь

    Сообщения:
    37
    Симпатии:
    1
    еще вылезла ошибка с добавлением картинки к товару, производителю и т.д. т.е. не добавляется
    было у кого такое - как решить?
     
    Последнее редактирование: 15 сен 2016
  4. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    Обновила движок с 2.0.3.1 на 2.2.0, обновляла на локалке, все по инструкции, с учетом уже выявленных ошибок, все конфиги исправила (про storage), в общем, все четко, все работает. На домене с http (без подключенного сертификата). Стоит переключиться на https, вылезает ошибка:

    Код:
    Warning: Unknown: open(/tmp/php_sess/sess_360e98d........., O_RDWR) failed: Permission denied (13) in Unknown on line 0Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp/php_sess) in Unknown on line 0
    При этом хочу пояснить, как меняю http на https (потому что не через админку):
    есть две директории - старая рабочая и новая (рабочая только на http).

    В старой директории ничего не трогаю, стоит по-прежнему 2.0.3.1, это понятно, домен с SSL работает четко.
    К новой прилинкован поддомен, к нему, разумеется, нет SSL, так проверяю http (меняя конфиги, ясное дело). Пока включен поддомен на новую папку, никаких проблем на сайте не обнаруживается. Стоит включить сам домен с SSL, все, ошибка.

    Написала хостеру по поводу настроек сессий, но возможно, причина в измененном session.php? Пробовал кто-то работать на домене с SSL в 2.2.0.?

    Кстати: на домене с SSL даже если сайт гружу по http все равно ошибка... Только дизайн не сбивается. Если грузить по https, то дизайн весь пропадает.

    В логах в админке тоже видна ошибка:
    Код:
    2016-09-27 12:21:56 - PHP Warning:  session_start(): open(/tmp/php_sess/sess_4d493a........., O_RDWR) failed: Permission denied (13) in старая директория/public_html/system/library/session.php on line 21
    Вот меня смущает, что я могла где не указать, из-за чего в ошибке СТАРАЯ (рабочая) директория на хостинге прописывается?


    =======================
    Заметила интересный нюанс, ссылки на картинки на http разительно отличаются от ссылок той же страницы на https, и на безопасном они совсем изначально неправильные! НИЧЕГО не меняла, кроме протокола в адресной строке.

    Пример:

    [​IMG]

    и следом меняю ТОЛЬКО протокол, а получаю совсем другую картину:



    [​IMG]

    И вот не могу понять, почему название категории на https добавляется ПЕРЕД папкой image?

    Исправила вручную, но в админку все равно зайти не могу и внизу светится все та же ошибка сессий.
     
    Последнее редактирование: 27 сен 2016
  5. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    с доступами к папкам это к хостеру. А вообще от ssl только минус трафик. Я вот захожу на знакомые мне сайты у которых ssl, а меня браузер начинает пугать словами про незащищенный трафик итд. Я естественно повинуюсь и закрываю сайт. Так что подумайте об этом.
     
    Zlata Jesen нравится это.
  6. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    А с неправильной конфигурацией ссылок? Каким образом название категории может прописываться ДО папки image? Причем только по безопасному протоколу...
    В общем, по https нормально не работают ссылки второго и более уровня вложенности.
    Заменила seo_url на оригинальный, эффекта ноль...
    ...
    Вопрос по сессиям хостер, кажется, решил, ошибки пропали... в админку зашла... но это ничего не меняет, ЧПУ элементов страниц генерится неверный.

    Требование Яндекс-кассы.
     
    Последнее редактирование: 28 сен 2016
  7. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    у вас в исходнике виду <base href="" />
    пустоты там не должно быть по умолчанию. Видимо где то напутали...
     
    Zlata Jesen нравится это.
  8. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    Спасибо за поддержку, просто уже не знаю, куда копать...
    В header.tpl стандартное

    Код:
    <base href="<?php echo $base; ?>" />
    Откуда берется эта переменная в безопасном и обычном режимах?
    Я не могу понять, почему косяк именно на https. Только на нем.
     
  9. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    из соответствующего контроллера header.php
     
  10. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    Ну контроллер я точно не трогала...
    Насколько могу понять, он как раз отсылает в конфиг... Пойду перепроверю..

    Код:
            if ($this->request->server['HTTPS']) {
                $server = $this->config->get('config_ssl');
            } else {
                $server = $this->config->get('config_url');
            }
    
            if (is_file(DIR_IMAGE . $this->config->get('config_icon'))) {
                $this->document->addLink($server . 'image/' . $this->config->get('config_icon'), 'icon');
            }
    
            $data['title'] = $this->document->getTitle();
    
            $data['base'] = $server;
            $data['description'] = $this->document->getDescription();
            $data['keywords'] = $this->document->getKeywords();
     
  11. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    Что-то я понимаю, что ничего не понимаю. Курс на пропавшую часть $base верный, сравниваю исходный код страницы на http и https и понимаю, что в ссылках на картинки пропала именно часть адреса с доменом... Но вот куда она могла "пропасть"? Конфиг проверила, вроде все так...
     
  12. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    а теперь потрогайт )) Попробуйте вручную задать адрес $server = 'https://sait....';
    А потом глянуть появился ли нормальный тег base href=
    Может какой то модуль у вас еще ломает ... это как вариант..
     
    Zlata Jesen нравится это.
  13. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    Модули у меня все стандартные... Но такая замена исправила ситуацию...
    Vlad, спасибо огромное!!!!!
    Тег появился, страница заработала, как положено... И что делать? Как искать, где он "пропадает"? Не оставлять же костыль?
     
  14. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    в 2.3 наверно исправили уже..
     
  15. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    В файле admin/controller/setting/setting.php есть строки

    Код:
        public function theme() {
            if ($this->request->server['HTTPS']) {
                $server = HTTPS_CATALOG;
            } else {
                $server = HTTP_CATALOG;
            }
    А в конфиге у меня не HTTPS_CATALOG, а HTTPS_SERVER
    Это не может быть причиной?
    ...
    Не. Поняла. HTTPS_CATALOG прописан в админке в конфиге...
    Как жаль, что я не знаю PHP, все времени нет заняться...
    В Яндекс кассе (в файлах) есть упоминание HTTPS_CATALOG, но вот что и зачем - не понимаю...

    Я не могу пока на 2.3 (хотя на локалке уже опробовала)... Яндекс-касса только до 2.2 версии поддерживает...
     
    Последнее редактирование: 28 сен 2016
  16. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    у меня
    Код:
    // HTTP
    define('HTTP_SERVER', 'http://op2200/');
    
    // HTTPS
    define('HTTPS_SERVER', 'http://op2200/');
     
  17. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    У меня все на https, но сути это не меняет, все равно $server не работала, а вписывание домена вручную грубо, но работает...

    config в корневой:
    Код:
    // HTTP
    define('HTTP_SERVER', 'https://ms-autotech.ru/');
    
    // HTTPS
    define('HTTPS_SERVER', 'https://ms-autotech.ru/');
    
    config в админке:
    Код:
    // HTTP
    define('HTTP_SERVER', 'https://ms-autotech.ru/директория админки/');
    define('HTTP_CATALOG', 'https://ms-autotech.ru/');
    
    // HTTPS
    define('HTTPS_SERVER', 'https://ms-autotech.ru/директория админки/');
    define('HTTPS_CATALOG', 'https://ms-autotech.ru/');
    
     
  18. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    Всё в ту же тему "пропавшего" названия домена (или зря смешиваю красное с холодным?).
    Неправильно формируется тег image:loc в карте сайта. Точно так же не хватает названия доменного имени.
    Подскажите, пожалуйста, как добавить "костыль" правильно?
    Есть код в google_sitemap.php:
    Код:
        $output .= '<image:loc>' . $this->model_tool_image->resize($product['image'], $this->config->get($this->config->get('config_theme') . '_image_popup_width'), $this->config->get($this->config->get('config_theme') . '_image_popup_height')) . '</image:loc>';
    насколько я понимаю, именно он генерирует ссылку на картинку в карте сайта... Ссылка получается урезанная, без указания доменного имени. Куда что добавить, чтобы валидаторы не ругались?
     
  19. Romans

    Romans Administrator Команда форума

    Сообщения:
    1.438
    Симпатии:
    780
    вот так не грубо.

    в файле \catalog\controller\startup\startup.php

    находим
    Код:
    // Settings
    
    и перед ним вставим
    PHP:
    $this->config->set('config_ssl'HTTPS_SERVER);
    после этого думаю получите то что нужно.
     
    pasha_st, Bkmz, dmitrio и ещё 1-му нравится это.
  20. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    @Romans , просто фантастика!)) Все классно (вернула в контроллер переменную, убрала домен), и в карте сайта сразу ссылки нормальными стали для картинок. Огромнейшее спасибо!