Поддержка Проблемы и решения SSL + BFS ошибка 500, 404, ошибка сертификата

  • Решено nikitabasenko

    (@nikitabasenko)


    Товарисчи, дорогие, хелп!

    Имеется сертификат ssl для сайта. Купленный.
    Сайт находится на субдомене.
    Помимо этого на сайте активирован плагин BulletProof https://wordpress.org/plugins/bulletproof-security/

    При попытке изменить «стандартно» адрес вордпресса с http на https — сайт уходи в циклическую переадресацию.

    Пробовал уже что угодно.

    Установил с ноля вордпресс, в итоге удалось запустить всё же https, но не подгружается явно css. Хотя, это через одно место, я бы сказал.

    Где копать? спасибо

Просмотр 15 ответов — с 1 по 15 (всего 21)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    При попытке изменить «стандартно» адрес вордпресса с http на https

    В обоих полях?

    сайт уходи в циклическую переадресацию

    С какого адреса на какой?

    Помимо этого на сайте активирован плагин BulletProof

    Что будет, если его отключить?

    в итоге удалось запустить всё же https, но не подгружается явно css

    Что выдаётся, если открыть CSS-файл по прямой ссылке?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Стоит иметь в виду, что редиректы часто кешируются браузером, поэтому после выполнения тех или иных действий лучше проверять не тот же адрес, что и раньше, а с дополнительным параметром: https://site.ru/?1, https://site.ru/?2 и т.д.

    В обоих полях?

    И в обоих и в поочередных.

    С какого адреса на какой?

    Трудно сказать. Ни в одном браузере перескакиваний не вижу. Только попытку https в адресной строке вижу и всё.

    Что будет, если его отключить?

    Во-первых всё же без защиты не хотелось бы остаться. Грешил сначала на плагины, потом на тему. Потом с ноля поставил вордпресс на субдомен. Без плагинов, со стандартной формой. В итоге — получаю либо циклическую ошибку, либо ошибку вида:
    Fatal error: Call to undefined function wp_json_encode() in ../wp-admin/includes/misc.php on line 668

    Это при том, что вордпресс, повторюсь, чистый.

    Стоит иметь в виду, что редиректы часто кешируются браузером, поэтому после выполнения тех или иных действий лучше проверять не тот же адрес, что и раньше, а с дополнительным параметром: https://site.ru/?1, https://site.ru/?2 и т.д.

    Работаю в режиме инкогнито по этому вопросу. Поэтом, каждый раз закрываю браузер для проверки. Настройки произвожу в стороннем, чтобы избежать этой проблемы. Кстати, по вопросу https после обновления вордпресса до 4.1 на английском форуме у не у меня одного, как оказалось возникла такая проблема — https://wordpress.org/support/topic/fatal-error-after-41-upgrade

    Поэтому, вопрос стоит глобальный. Я сейчас, конечно, подключил своего хостера, пытаемся вместе как-то это побороть. Но, я задал вопрос со стороны обычного пользователя, который скажем не бум-бум в кодинге. В этом случае у моих клиентов просто паника начиналась при виде ошибки и loop-а.

    Именно это и стало причиной моего обращения сюда, после того, как попытки решить вопрос самостоятельно не увенчались успехом.

    Спасибо заранее за помощь.

    Модератор Yuri

    (@yube)

    С какого адреса на какой?

    Трудно сказать.

    Хм… Не умеете смотреть http-заголовки? F12, вкладка «Сеть». Или любой другой инструмент разработчика и тех.поддержчика 🙂

    Хм… Не умеете смотреть http-заголовки? F12, вкладка «Сеть». Или любой другой инструмент разработчика и тех.поддержчика 🙂

    Неправильно выразился. Там не вижу проблемы, как таковой. Попытка загрузить https циклическая.

    На стороне хоста всё пересмотрел сто раз — htaccess-а изначально нет, т.к.я работаю на чистом движке. Пробовал пересоздавать — результата «0». Пробовал поочередно менять (с восстановлением бэкапа) сначала адрес вордпресса, потом адрес сайта на https (в админке) — та же тема (луп или ошибка).

    Хостер сказал, что проблема в functions, а также файлах папки wp-includes, повторюсь, я уже тупо всё вынес на отдельный субдомен, чтобы сайт рабочий в покое оставить. Т.е. работаю с 4.1 wordpress и стандартной темой.

    Ошибка Fatal error: Call to undefined function wp_json_encode() in ../wp-admin/includes/misc.php on line 668 вылазит после плясок с бубном и замены в папке wp-includes. Но, во-первых по сути это уже доработка, а не «стандартная версия». Не хотелось бы на всех сайтах так мудохаться.

    Во-вторых, даже если сайт грузится с https:
    1. Главная всё равно http
    2. На сайте не переменные заменяются на https, из-за чего выдается ошибка шифрования
    3. В админку попасть нереально — Fatal error: Call to undefined function wp_json_encode() in ../wp-admin/includes/misc.php on line 668

    Поэтому, всё же хотелось бы понять, как же это всё-таки закрыть. Сегодня думаю откатиться до прошлой версии движка. Конечно, это не рекомендуется, но у меня просто ступор в решениях. Сайтов с десяток. Вопрос поэтому хочу решить глобально, чтобы версия движка везде была актуальной, ну и с плагинами чтобы работало. Хотя, сейчас даже в этом плане вопрос не стоит, ведь «чистый» движок не пашет.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    В итоге — получаю либо циклическую ошибку, либо ошибку вида:
    Fatal error: Call to undefined function wp_json_encode() in ../wp-admin/includes/misc.php on line 668

    Это при том, что вордпресс, повторюсь, чистый.

    Ошибка Fatal error: Call to undefined function wp_json_encode() in ../wp-admin/includes/misc.php on line 668 вылазит после плясок с бубном и замены в папке wp-includes.

    Если правились файлы ядра, установку уже нельзя назвать чистой.

    Функция wp_json_encode() появилась в WordPress 4.1, ошибка вызвана использованием файла wp-includes/functions.php от более старой версии.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Хостер сказал, что проблема в functions, а также файлах папки wp-includes

    Так и сказал, или всё же что-то более конкретное?

    Сегодня думаю откатиться до прошлой версии движка. Конечно, это не рекомендуется, но у меня просто ступор в решениях.

    Если версия 3.9.3 или 4.0.1 работает, то лучше откатиться на неё, чем смешивать файлы от разных версий. Для 3.9.x и 4.0.x ещё долгое время будут выходить обновления безопасности (вместе с 4.0.1 вышли версии 3.9.3, 3.8.5 и 3.7.5).

    Так и сказал, или всё же что-то более конкретное?

    Так и сказал — все проблемы искать не хотим, заменили папку wp-includes.
    Сделал запрос на изменения, чтобы это применить на других сайтах.

    Если версия 3.9.3 или 4.0.1 работает, то лучше откатиться на неё, чем смешивать файлы от разных версий. Для 3.9.x и 4.0.x ещё долгое время будут выходить обновления безопасности (вместе с 4.0.1 вышли версии 3.9.3, 3.8.5 и 3.7.5).

    У меня стояла версия 4.0.1 — там такая же борода была. Просто решил обновиться до 4.1, в надежде на решение вопроса.

    Посмотрим, что это даст. Но, как вариант.

    Единственное «ню», у меня же вордпресс до этого обновлялся автоматически. С 4.0.1 этого не должно произойти, если я откачусь, чтобы протестировать функциональное решение по SSL.

    Спасибо за ответ.

    Если правились файлы ядра, установку уже нельзя назвать чистой.

    Функция wp_json_encode() появилась в WordPress 4.1, ошибка вызвана использованием файла wp-includes/functions.php от более старой версии.

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

    Вопрос решен. Удалось всё-таки внести нужные изменения в functions.php и в пару файлов. Всем спасибо за желание помочь.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Поделитесь, пожалуйста, решением — оно может быть полезно другим.

    Если описать сделанные изменения в вашем тикете — возможно, их включат в следующую версию. Или найдётся вариант добиться того же эффекта без правки файлов ядра.

    Поделитесь, пожалуйста, решением

    Я это сделал только на чистом wordpress-е. Ещё с рабочей темой не тестировал. Поэтому, я думаю ризонно буде сделать это после полного релиза.

    Решение оказалось простым.
    1. Поменял в админке http на https
    2. В файле wp-includes/functions.php в строках № 3670, 3671, 3673 изменил HTTPS на HTTP_SSL
    Залил файл обратно по FTP.

    После этого, по совету хостера, в htaccess, который в корне, внес следующие изменения:
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP:SSL} !=1 [NC]
    RewriteRule ^(.*) https://www.сайт.com/$1 [L,R=301]

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    В файле wp-includes/functions.php в строках № 3670, 3671, 3673 изменил HTTPS на HTTP_SSL

    Попробуйте добавить строку в wp-config.php:

    $_SERVER['HTTPS'] = !empty( $_SERVER['HTTP_SSL'] ) ? $_SERVER['HTTP_SSL'] : 0;

    Этого должно быть достаточно, чтобы не править функцию.

    Этого должно быть достаточно, чтобы не править функцию.

    Это нужно где-то добавить конкретно? (имею ввиду, имеет значение где?)
    Или же нужно что-то заменить?

Просмотр 15 ответов — с 1 по 15 (всего 21)
  • Тема «SSL + BFS ошибка 500, 404, ошибка сертификата» закрыта для новых ответов.