我安装了最新的 Ubuntu 18.04,并尝试像以前一样使用 Pidgin 连接到我们的内部 XMPP 服务器(该服务器相当旧并且我无法访问)。
但我无法连接...出现SSL Handshake Failed
错误。
这是我在调试窗口中得到的内容:
(10:37:11) account: Connecting to account d.goosens@%%SERVER_NAME%%/Spark 2.6.3. (10:37:11) connection: Connecting. gc = 0x55e3f7cdca10 (10:37:11) dnsquery: Performing DNS lookup for %%SERVER_IP%% (10:37:11) dnsquery: IP resolved for %%SERVER_IP%% (10:37:11) proxy: Attempting connection to %%SERVER_IP%% (10:37:11) proxy: Connecting to %%SERVER_IP%%:5222 with no proxy (10:37:11) proxy: Connection in progress (10:37:11) proxy: Connecting to %%SERVER_IP%%:5222. (10:37:11) proxy: Connected to %%SERVER_IP%%:5222. (10:37:11) jabber: Sending (d.goosens@%%SERVER_NAME%%/Spark 2.6.3): <?xml version='1.0' ?> (10:37:11) jabber: Sending (d.goosens@%%SERVER_NAME%%/Spark 2.6.3): <stream:stream to='%%SERVER_NAME%%' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'> (10:37:11) jabber: Recv (177): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="%%SERVER_NAME%%" id="a1c57c52" xml:lang="en" version="1.0"> (10:37:11) jabber: Recv (486): <stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"></starttls><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism><mechanism>ANONYMOUS</mechanism><mechanism>CRAM-MD5</mechanism></mechanisms><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><auth xmlns="http://jabber.org/features/iq-auth"/><register xmlns="http://jabber.org/features/iq-register"/></stream:features> (10:37:11) jabber: Sending (d.goosens@%%SERVER_NAME%%/Spark 2.6.3): <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/> (10:37:11) jabber: Recv (50): <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/> (10:37:11) nss: Handshake failed (-12279) (10:37:11) connection: Connection error on 0x55e3f7cdca10 (reason: 5 description: SSL Handshake Failed) (10:37:11) account: Disconnecting account d.goosens@%%SERVER_NAME%%/Spark 2.6.3 (0x55e3f700e310) (10:37:11) connection: Disconnecting connection 0x55e3f7cdca10 (10:37:11) connection: Destroying connection 0x55e3f7cdca10 (10:37:12) util: Writing file prefs.xml to directory /home/dgoosens/.purple (10:37:12) util: Writing file /home/dgoosens/.purple/prefs.xml
(替换了 SERVER_NAME 和 SERVER_IP)
尝试了所有可能的帐户设置...但似乎没有任何效果...
有什么建议 ?
编辑(2018-05-07)
因此,我的服务器似乎使用了过期的 STARTTLS 证书。
我按照以下说明进行操作:https://askubuntu.com/questions/610585/force-pidgin-to-acept-an-invalid-certificate
下载了证书并将openssl
其导入 Pidgin...
但这并没有改变任何东西...仍然得到相同的调试信息。
所以我猜我没有正确配置应用程序
有什么建议可以解决这个问题吗?
答案1
调试消息(10:37:11) nss: Handshake failed (-12279)
在这里是关键。来自https://www-archive.mozilla.org/projects/security/pki/nss/ref/ssl/sslerr.html这指的是:
SSL_ERROR_UNSUPPORTED_VERSION -12279 “对等方使用不受支持的安全协议版本。”
在客户端套接字上,这意味着远程服务器试图协商使用 NSS 库不支持的 SSL 版本,可能是版本号无效。在服务器套接字上,这意味着远程客户端请求使用早于版本 2 的 SSL 版本。
尝试使用 NSS Preferences 插件(从好友列表,工具->插件)将您的最低 TLS/SSL 版本更改为服务器支持的足够低的版本。
答案2
Pidgin 要求您在服务器上设置证书。例如,使用 ejabberd,您必须编辑 ejabberd.yml 并添加certfile
选项
listen:
-
port: 5222
ip: "::"
module: ejabberd_c2s
certfile: "c:/ejabberdserver/server_new.pem"