Faraday::SSLError (SSL_read: неожиданный конец файла при чтении)

Я пытаюсь настроить OAuth2 между форумом и WordPress. Но теперь, когда я авторизован в WordPress и возвращаюсь обратно на https://forum/auth/oauth2_basic/callback, появляется сообщение «Oops», а в логах указано Faraday::SSLError (SSL_read: unexpected eof while reading).

Что это означает? Чей именно SSL имеется в виду? Результаты поиска в Google часто указывают на ошибку, связанную с версией OpenSSL, но на какой стороне? Однако эти рекомендации были опубликованы примерно 2 года назад.

К тому же я часто допускаю ошибки в конфигурации…

После очень активного поиска в Google выяснилось, что проблема в версии OpenSSL. Мой WordPress и прочее находятся на VPS с Ubuntu 20.04 и OpenSSL 1.1.1f, что является последней возможной версией, но Discourse работает под управлением 22.04, где используется OpenSSL 3.something.

Так что моя головная боль — это сервер с WordPress, а не Discourse.

Ну, мне стоит перейти на более новую версию Ubuntu. Да, и теперь мы глубоко в причинах, почему я так сильно не люблю все дистрибутивы Linux: мне нужно перенести десятки обычных сайтов WordPress, один WooCommerce, два Moodle, Postfix, Varnish с его дополнениями, воссоздать стек LAMP, но с MariaDB, пересобрать стек Nginx-Varnish-Apache, настроить cron-задачи и так далее. В последний раз, когда я это делал, это заняло три дня, и я даже не говорю о рабочих днях…

Что ж, это моя проблема, и только моя. Я это знаю. И теперь мне нужно принять решение: действительно ли моим пользователям нужна возможность входа на форум через OpenID с использованием WordPress в качестве провайдера.

Редактирование:

Я выполнил do-release-upgrade, и после короткого тестирования всё выглядит рабочим. В DigitalOcean что-то изменилось, потому что когда я пробовал переход с 18 на 20, это была полная катастрофа.

Но ничего не изменилось.

  • OpenID не может получить данные обнаружения, хотя curl их видит
  • OAuth по-прежнему выдаёт ошибку SSL
  • DiscourseConnect не вариант, потому что он перехватывает всё

Я сдаюсь. Это не моё :man_shrugging:

Редактирование

Боже, какой же я идиот :man_facepalming: Поскольку прямая ссылка и curl к JSON обнаружения работали, я был абсолютно уверен, что ошибка должна быть на стороне Discourse. Теперь я проверил логи Nginx на сервере WordPress, и каждый раз, когда запрашивалось обнаружение, Nginx возвращал ошибку 444 — за исключением случаев, когда запрос делал я. После этого решение оказалось действительно простым: убрать Faraday из моего списка плохих ботов.

Не знаю. Эту тему следует удалить, так как она не связана с Discourse. Но, конечно, она может дать подсказку кому-то, кто мыслит чуть шире.