Ubuntu 18.04下Pidgin连接旧内部XMPP服务器遇SSL握手失败求助
解决Pidgin连接老旧XMPP服务器的SSL握手失败问题
我处理过不少这类情况——老旧XMPP服务器大多依赖过时的SSL/TLS协议(比如SSLv3、TLS 1.0)或者弱加密套件,而新版Ubuntu和Pidgin出于安全考虑默认禁用了这些选项,直接导致握手失败。试试下面几个逐步递进的解决方案:
1. 调整Pidgin账户的SSL基础设置
这是最安全的第一步,先从客户端配置入手:
- 打开Pidgin,找到你的XMPP账户,右键点击选择「修改」
- 切换到「高级」标签页
- 把「连接安全」选项从默认的「要求加密」改成「使用旧版SSL」;如果还是不行,临时试试「允许未加密连接」(注意:后者不安全,仅作为测试用,能连的话优先找服务器管理员升级)
- 同时确认「端口」和你之前用Spark连接时一致,老旧服务器常用5223(SSL端口)或5222(非加密端口)
2. 给Pidgin单独指定兼容加密套件
如果基础设置没用,那大概率是加密套件不兼容。可以通过环境变量降低Pidgin的SSL安全等级,只针对Pidgin生效,不影响系统其他程序:
- 打开终端,运行这条命令启动Pidgin:
SSL_CIPHERS="DEFAULT@SECLEVEL=1" pidgin - 如果能成功连接,为了方便后续使用,把这个设置整合到桌面快捷方式:
- 把系统默认的Pidgin快捷方式复制到用户目录:
cp /usr/share/applications/pidgin.desktop ~/.local/share/applications/ - 编辑复制后的文件,找到
Exec=pidgin这一行,改成:Exec=env SSL_CIPHERS="DEFAULT@SECLEVEL=1" pidgin - 保存后,以后从应用菜单启动Pidgin就会自动加载这个兼容设置
- 把系统默认的Pidgin快捷方式复制到用户目录:
3. 临时调整系统全局SSL配置(不推荐长期使用)
如果上面的方法都不行,只能临时降低系统全局的SSL安全等级,但这会让整个系统的SSL连接安全性下降,用完记得改回来:
- 用sudo权限编辑
/etc/ssl/openssl.cnf文件:sudo nano /etc/ssl/openssl.cnf - 找到
[system_default_sect]部分,修改成以下内容:[system_default_sect] MinProtocol = TLSv1.0 CipherString = DEFAULT@SECLEVEL=1 - 保存后重启Pidgin测试,连接成功后记得把配置改回原来的样子,避免系统暴露在安全风险中
补充说明
因为你没有服务器的操作权限,只能从客户端侧做兼容调整。优先尝试前两个方法,尽量避免修改全局SSL配置——毕竟安全第一,能连得上的前提下,尽量用最安全的兼容方案。
内容的提问来源于stack exchange,提问作者dGo
相关产品推荐
相关产品推荐

