gpt4 book ai didi

python - SleekXMPP: "Certificate has expired."

转载 作者:太空宇宙 更新时间:2023-11-03 14:50:21 24 4
gpt4 key购买 nike

我目前正在尝试使用 Python3.5 中的 sleekxmpp 模块连接到 jabber.at,一个 XMPP 服务。 Jabber.at 的 SSL 证书由 Let's Encrypt 颁发。

我遇到的问题是,当我尝试使用 sleekxmpp 登录我的 jabber.at 帐户时,出现以下错误:

INFO     Negotiating TLS
INFO Using SSL version: TLSv1
ERROR Certificate has expired.

我尝试在 Ubuntu 16.04、Manjaro GNOME 17 和 Windows 10 上解决这个问题,在每台机器上全新安装 Python、sleekxmpp 和所有 sleekxmpp 的依赖项。这没有什么不同。

在我的每台机器上,我都有 Let's Encrypt Authority X3 certificate安装,但 sleekxmpp 仍然认为证书已过期,即使证书有效期到 2022 年。令人沮丧的是,我能够使用 Pidgin 登录我的 XMPP 帐户,并且证书由 Pidgin 自动保存(您可以在 ~/.purple/in Linux) 与我直接从 Let's Encrypt 下载的完全相同。

我已经尝试在 sleekxmpp.xmlstream.xmlstream.py:125 中手动更改 ssl 版本至 ssl.PROTOCOL_SSLv23 ,但这也不起作用。我还尝试在 sleekxmpp.xmlstream.xmlstream.py:140 中手动指定 Let's Encrypt .crt 文件的路径。 , 但我仍然有同样的问题。

我应该注意到我有 dnspython , pyasn1 , 和 pyasn1_modules安装在每台机器上。虽然我可以通过卸载 pyasn1 成功登录到我的 jabber.at 帐户。 ,或通过设置 sleekxmpp.xmlstream.xmlstream.py:140 显式忽略证书至 None ,这不是我的解决方案 - 我必须加密我的连接。

有什么我可以做的吗?我已经处理这个问题好几天了,但我在 Google 上找不到任何有用的解决方案。

感谢您的帮助!

最佳答案

一个多月后,我找到了解决自己问题的方法。

原来这个问题是由版本 1.3.3 中引入的 SleekXMPP 中的回归引起的:

GitHub: Regression from 1.3.1

这个问题最近才得到解决,但截至目前,还没有包含修复程序的官方版本。此问题的短期解决方案是卸载 SleekXMPP,然后重新安装 SleekXMPP,指定版本 1.3.1:

sudo pip3 uninstall sleekxmpp
sudo pip3 install sleekxmpp==1.3.1

恢复到版本 1.3.1 为我解决了这个问题。也许这在 SleekXMPP 1.3.4 中将不再是一个问题。

关于python - SleekXMPP: "Certificate has expired.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46230357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com