Faraday::SSLError(SSL_read:读取过程中意外的 eof)

我正在尝试让 OAuth2 在论坛和 Wordpress 之间工作。但现在当我登录到 Wordpress 并返回到 https://forum/auth/oauth2_basic/callback 时,我会得到一个 Oops,日志显示 Faraday::SSLError (SSL_read: unexpected eof while reading)

这是什么意思?它指的是谁的 SSL?谷歌搜索结果经常表明这是 OpenSSL 版本相关的错误,但是在哪一端呢?不过那些建议大约是 2 年前的了。

而且我确实经常犯配置错误……

1 个赞

经过一番积极的谷歌搜索,看起来问题出在 OpenSSL 的版本上。我的 WordPress 等运行在 Ubuntu 20.04 的 VPS 上,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 端。现在我检查了 WordPress 服务器上 Nginx 的日志,每次请求发现信息时,Nginx 都会返回 444 错误 — 除非是我自己发起的。之后解决方案真的很简单:从我的垃圾机器人列表中移除 Faraday。

我不知道。这个话题应该被删除,因为它与 Discourse 无关。但当然 — 它可以给那些思考更广泛的人一些提示。

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.