Автор Тема: Почему происходит переадресация с https на http?  (Прочитано 2221 раз)

14 Февраль 2015, 19:11:21
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • dietguru.ru

Добрый всем день! Причастных с праздником!

Никак не могу разобраться с одной проблемой после переноса сайта на другой хостинг.

Задача
Для организации оплаты через яндекса кассу, требуется передача данных по безопасному соединению. Для чего, как и прежде, на хостнинге подключили ssl, доступ по тестовому https адресу работает.

В админке престашопа (1.6.0.9) появилось предупреждение:
Сейчас вы подключены под следующим доменом dietguru.ru:443

В настройка url имя домена и имя домена ssl стоит: dietguru.ru

Проблема
В общих настройках пытаюсь включить SSL, нажав "Пожалуйста нажмите здесь, чтобы использовать протокол https перед включением ssl"

После нажатия админская страничка открывается по адресу с https, но фразы "Включить SSL" вместо вышеуказанной надписи не появляется.

При этом, при попытке зайти на сайт по адресу: https://dietguru.ru происходит переадресация на http://dietguru.ru

Где искать причину? Заранее спасибо.
14 Февраль 2015, 20:01:12
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1288
  • Репутация: +34/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Это хостинг, на шаред хостинге, если у вас нет выделенного IP и сертификата SSL, https работать не будет.
14 Февраль 2015, 20:07:12
Ответ #2
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • dietguru.ru
Это хостинг, на шаред хостинге, если у вас нет выделенного IP и сертификата SSL, https работать не будет.
Хостер mchost.ru, внешний ip куплен, самоподписной сертификат (мне его достаточно) установлен. И по тестовому адресу работает.
14 Февраль 2015, 20:10:45
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 14085
  • Репутация: +14569/-2
  • Сообщество PrestaShop
    • Просмотр профиля
Фраза "Пожалуйста нажмите здесь, чтобы использовать протокол https перед включением ssl"  это просто ссылка с уазанием протокола HTTPS. Нажимая на нее вы тестируете свой хостинг. Если страница открылась, значит этот протокол настроен на сервере. После проверки заходите опять в настройки и включаете SSL.
14 Февраль 2015, 20:16:47
Ответ #4
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • dietguru.ru
Фраза "Пожалуйста нажмите здесь, чтобы использовать протокол https перед включением ssl"  это просто ссылка с уазанием протокола HTTPS. Нажимая на нее вы тестируете свой хостинг. Если страница открылась, значит этот протокол настроен на сервере. После проверки заходите опять в настройки и включаете SSL.
Страница открывается (та же админка, но уже c HTTPS)
но вместо фразы "Пожалуйста нажмите здесь, чтобы использовать протокол https перед включением ssl"
поле с предложением включить SSL не появляется. Может можно где-то вручную это прописать? Я никак не могу понять почему так.
14 Февраль 2015, 20:20:46
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 14085
  • Репутация: +14569/-2
  • Сообщество PrestaShop
    • Просмотр профиля
Заходите в Настройки / Общее
Ставите галочку в чекбоксе Включить SSL, нажимаете сохранить.
Если не заработало, заходите в базу данных. Проверяете параметр PS_SSL_ENABLED
SELECT *
FROM `ps_configuration`
WHERE `name` = 'PS_SSL_ENABLED'
если value = 0, то меняете его на 1.
14 Февраль 2015, 20:34:08
Ответ #6
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • dietguru.ru
Заходите в Настройки / Общее
Ставите галочку в чекбоксе Включить SSL, нажимаете сохранить.
Если не заработало, заходите в базу данных. Проверяете параметр PS_SSL_ENABLED
SELECT *
FROM `ps_configuration`
WHERE `name` = 'PS_SSL_ENABLED'
если value = 0, то меняете его на 1.
Adik, Спасибо огромное! Чекбокс появился только после замены 0 на 1 в 'PS_SSL_ENABLED' в бд
14 Февраль 2015, 20:42:23
Ответ #7
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • dietguru.ru
Странно. Теперь я не могу оформить заказ. Товары в корзину добавляются но далее ничего не происходит.
Более того, если я поставлю "принудительно использовать SSL на всех страницах" то браузер начинает выдавать: "На этой странице обнаружена циклическая переадресация"

Если же я выключу SSL чекбоксом, то после обновления страницы, чекбокс пропадает и снова появляется фраза "Пожалуйста нажмите здесь, чтобы использовать протокол https перед включением ssl"

это проблема на стороне престашопа или может быть какая-то проблема у хостера?
14 Февраль 2015, 20:48:08
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 1047
  • Репутация: +3/-0
  • Сообщество PrestaShop
    • Просмотр профиля
С prestashop обычно нет проблем, если сервер правльно настроен. Отмечаешь чекбокс Включить SSL, сохраняешь и работает. Кеш только очистить нужно.
14 Февраль 2015, 20:57:29
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 1047
  • Репутация: +3/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно попробывать в htaccess добавить
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
Настройки  > SEO & URLs
Имя домена поменять на - "www.yourdomain.com"
14 Февраль 2015, 21:04:23
Ответ #10
  • Пользователь
  • **
  • Сообщений: 77
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Для того, чтобы перенаправление домена с http на https работало, должен использоваться только Web-сервер Apache. При использовании связки Nginx+Apache будет возникать ошибка циклической переадресации.
Тоже сталкивался с таким. Мне вот так ответил хостер. Пришлось поменять сервер.
14 Февраль 2015, 22:03:43
Ответ #11
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • dietguru.ru
Можно попробывать в htaccess добавить
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
Настройки  > SEO & URLs
Имя домена поменять на - "www.yourdomain.com"

Спасибо, в htaccess добавил - но никаких различий не увидел.
в настройках стоит мой домен без www

Цитировать
С prestashop обычно нет проблем, если сервер правльно настроен. Отмечаешь чекбокс Включить SSL, сохраняешь и работает. Кеш только очистить нужно.
Да, на предыдущем хостинге все было без проблем в этом плане, только тормозной был жуть (nic.ru) и периодами на пару дней не работал.
14 Февраль 2015, 22:04:51
Ответ #12
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • dietguru.ru
Цитировать
Для того, чтобы перенаправление домена с http на https работало, должен использоваться только Web-сервер Apache. При использовании связки Nginx+Apache будет возникать ошибка циклической переадресации.
Тоже сталкивался с таким. Мне вот так ответил хостер. Пришлось поменять сервер.
О, спасибо, похоже моя ситуация у хостера как раз Nginx(
Буду с ним общаться
17 Февраль 2015, 20:48:57
Ответ #13
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • dietguru.ru
В общем новости.

Перешел на другой хостинг (да что уж там, перепробовал 5штук!)

И проблема... осталась.
Во первых везде есть nginx+apache, но как оказалось на других хостингах, ssl и доступ по https из браузера включается сразу. Но проблема с оплатой (а это для меня главное) - остается.

В техподдержке яндекс.кассы
мне ответили:

Цитировать
Ваш урлы недоступны по https:
\javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated

В хостинге мне пытаются помочь, но не очень понятна причина, скорее всего это связано именно с престашопом:

Цитировать
Да с браузера заходило, но если из консоли запрашивать страницу то она отдавалась пустой, думаю именно это и имела ввиду техподдержка яндекса "Ваш урлы недоступны по https^", я так думаю.
Тестировал до включения опции -

ktulhu@ktulhu-P67-DS3-B3:~$ curl -k 'https://amber52u.bget.ru/content/12-recepty'
ktulhu@ktulhu-P67-DS3-B3:~$
контента нет, после включения -

ktulhu@ktulhu-P67-DS3-B3:~$ curl -k 'https://amber52u.bget.ru/content/12-recepty'
<!DOCTYPE HTML>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 " lang="ru"><![endif]-->
<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8 ie7" lang="ru"><![endif]-->
<!--[if IE 8]><html class="no-js lt-ie9 ie8" lang="ru"><![endif]-->
<!--[if gt IE 8]> <html class="no-js ie9" lang="ru"><![endif]-->
<html lang="ru">
как я понимаю отклик в любом случае должен быть, вне зависимости от настроек платежного модуля или чего-либо еще?
17 Февраль 2015, 21:09:22
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 14085
  • Репутация: +14569/-2
  • Сообщество PrestaShop
    • Просмотр профиля
При отсуствии данных о сертификате тоже может ничего не выдать.