не загружаются изображения по url при импорте csv На рассмотрении

1

Добрый день.

При импорте товаров из csv-файла штатным средством Импорт/экспорт webasyst не загружаются изображения по url. В логе появляется ошибка следующего вида:

Curl error: 60# Peer's Certificate issuer is not recognized. at [/wa-cache/temp/shop/csv/upload/images/47bfb545d0a842aaed1227e381641de9.jpg]

Вся информация загружаются кроме изображений.

В чем причина, подскажите.

7 комментариев

  • +2
    Михаил Ушенин Михаил Ушенин Webasyst 26 апреля 2019 09:10 #

    У корневого сертификата на вашем сервере не указан Issuer. Проверьте это, например, вот этим сервисом.

    • +1
      Ярослав Киселев Ярослав Киселев 26 апреля 2019 12:08 #

      Спасибо. Да, это действительно так, только не на нашем сервере, а на сервере, с которого мы пытаемся скачивать картинки. И повлиять на это мы, разумеется, не можем.

      Кто-нибудь знает, как отключить в вебасисте шоп-скрипте проверку сертификата при запросе curl'ом?

      • +2

        А если попробовать обращаться по http? Массово заменить протокол в столбце с картинками. Если у них нет безусловной переадресации на https, то вполне может прокатить.

        • +1
          Ярослав Киселев Ярослав Киселев 26 апреля 2019 15:42 #

          Нет, стоит переадресация

          • +2

            Ну тогда согрешить и, например, в waNet поменять временно 

            public function __construct($options = array(), $custom_headers = array())
                {
                    $this->user_agent = sprintf('Webasyst-Framework/%s', wa()->getVersion('webasyst'));
            
                    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
                        $this->options['verify'] = false;
                    }
            
                    $this->options = array_merge(
                        $this->options,
                        $this->getDefaultOptions(),
                        $options,
                        self::$master_options
                    );
                    $this->request_headers = array_merge($this->request_headers, $custom_headers);
                    $this->options['verify'] = false;
                }

            добавлена последняя строчка

            • +2

              Хотя скорей всего грешить придётся в wa-system/file/waFiles.class.php 

              private static function curlInit($url, $curl_options = array())
              

              в блок 

              $curl_default_options = array(
                              CURLOPT_HEADER            => 0,
                              CURLOPT_RETURNTRANSFER    => 1,
                              CURLOPT_TIMEOUT           => 10,
                              CURLOPT_CONNECTTIMEOUT    => 10,
                              CURLE_OPERATION_TIMEOUTED => 10,
                              CURLOPT_DNS_CACHE_TIMEOUT => 3600,
                              CURLOPT_BINARYTRANSFER    => true,
                              CURLOPT_WRITEFUNCTION     => array(__CLASS__, 'curlWriteHandler'),
                          );

              добавить 

              CURLOPT_SSL_VERIFYHOST => 0,
              CURLOPT_SSL_VERIFYPEER => false,

              Только потом лучше удалить :)

              • +1
                Ярослав Киселев Ярослав Киселев 26 апреля 2019 18:23 #

                Спасибо большое! Добавление строк в waFiles.class.php решило проблему.

                Удалять, наверное, пока не будем, чтоб каждый раз не лазить в код. Т.к. загружать приходится много прайсов от поставщиков, сайты в принципе проверенные

                Добавить комментарий

                Чтобы добавить комментарий, зарегистрируйтесь или войдите