强制Pidgin接受无效的证书


23

我在Pidgin 2.10.10-3.fc20(libpurple 2.10.10)上遇到以下错误。

如何强制它接受无效的证书?

(根据此错误报告,它应该可以)。

在此处输入图片说明

这是我所做的:

  • 在Firefox上访问了域,并导出了证书
  • 在Pidgin 工具上导入了证书-> 证书
  • seahorse(gnome密钥环GUI)上导入了证书

请添加Ubuntu版本和该Pidgin版本的源代码。
AB

你看到吗?也许有人可以使用该信息...
字节指挥官

@ByteCommander您提供的链接只是一个命题模型。我很喜欢看到它实现,但我不是开发商。
那个巴西人2015年

我需要一个无效的证书。=)
AB

@AB您是否已编辑源代码?如果是的话,我将转移到其他地方:)
kos 2015年

Answers:


13

或者,您可以手动下载ssl证书。之后,pidgin顺利启动。要下载证书,可以使用openssl命令行实用程序。

~/.purple/certificates/x509/tls_peers$ openssl s_client -connect YOUR_SERVER:PORTNUMBER  

当以上命令失败并显示“没有对等证书可用”时,则服务器可能使用STARTTLS而不是SSL。在这种情况下,请使用以下命令:

~/.purple/certificates/x509/tls_peers$ openssl s_client -connect YOUR_SERVER:PORTNUMBER -starttls xmpp

现在复制以“ ---- BEGIN CERTIFICATE ----”开头的部分。如果打印证书文件的内容,则如下所示:

~/.purple/certificates/x509/tls_peers$ cat jabber.ulm.ccc.de 

-----BEGIN CERTIFICATE-----
MIIFXDCCA0QCCQCa5jxvwccm0DANBgkqhkiG9w0BAQUFADBwMQswCQYDVQQGEwJE
RTEMMAoGA1UEBxMDVWxtMRUwEwYDVQQLEwxDQ0MgRXJmYSBVbG0xGjAYBgNVBAMT
EWphYmJlci51bG0uY2NjLmRlMSAwHgYJKoZIhvcNAQkBFhFqYWJiZXJAdWxtLmNj
...
3EIpMVk3V1djyj0FEuDaG/o+6BTLCiIMiIUFtbpVz8YZChHbv8ObMJ5JpUIkDfKZ
si1YZKpUYwpVXgTCUml67lArx/sq95OQsDSO3fR1Ch0=
-----END CERTIFICATE-----

1
...然后什么?我将下载的文件放在哪里?
那个巴西人2015年

8
将文件放在目录〜/ .purple / certificates / x509 / tls_peers /中。文件名是jabber服务器的DNS名称,这一点很重要。因此,如果您的jabber帐户是user123@jabber.ulm.ccc.de,那么您必须创建以下文件:〜/ .purple / certificates / x509 / tls_peers / jabber.ulm.ccc.de
Martin

2
@Martin的上述评论应包括在答案中,因为进行此工作非常重要。在Kubuntu 15.04上使用Pidgin 2.10.9(libpurple 2.10.9)确认了解决方法。
巴斯蒂安

11

原来在Pidgin 2.10.10(libpurple 2.10.10)中存在一个带有证书的错误

在2.10.10版中,无法再连接到使用自签名SSL证书的XMPP服务器。错误消息是:无法验证的证书。提供的证书链无效。

如果服务器证书已在本地缓存(.purple \ certificates \ x509 \ tls_peers)中,则可以建立连接。如果证书尚未缓存(例如,在全新安装Windows / pidgin之后),则连接将失败。

升级到2.10.11可解决此问题。如果您使用的是像我这样的旧版Ubuntu,则可以使用PPA(12.04、14.04和14.10)


2
不幸的是,升级到pidgin 2.10.11in Ubuntu 15.04没有帮助。我刚刚检查了一下,发现问题仍然没有解决。
Jacobian

@Jacobian您是否同时升级 Pidgin和libpurple?
那个巴西人2015年

2
是的,在我删除libpurple之前,它对我不起作用:sudo apt-get remove libpurple0然后重新安装sudo apt-get install pidgin
EoghanM 2015年

这种感觉,当一年过时的PPA比官方存储库高2个版本时。
Hi-Angel

2

通过Tools→ 导入证书时输入的名称Certificatesconnect serverXMPP帐户配置中的匹配似乎很重要。这是我能够使它针对相同错误工作的唯一方法。

连接服务器和证书主机名应该匹配


1
欢迎问Ubuntu!您能否对此进行详细说明(例如,EG提供示例命令)?如果这是一个好书,而您给我留了条便条,我会回来投票! ;-)
Fabby 2015年

1
@Fabby谢谢,我添加了一个屏幕截图以使其更清晰,不需要命令。
tobigue

编辑投票! ;-)
Fabby 2015年

经过几个小时的解决, (15:24:43) nss: ERROR -8101: SEC_ERROR_INADEQUATE_CERT_TYPE (15:24:43) nss: subject name not verified这是解决方案!谢谢!!
matteolel

2

另一个解决方法是导入错误中指定的服务器名称,例如myserver.chat.com。例如:

  1. 打开Firefox浏览器,然后输入URL:,HTTPS://mysever.chat.com您将得到一个错误:

    无效的证书错误

  2. 选择,Advanced然后选择Add Exception。证书的弹出窗口将打开。

  3. 然后单击Advanced-> Details->Export

    证书查看器

  4. 将证书保存在某处

  5. 打开Pidgin,转到Tools-> Certificates-> Add 现在,以与错误开头相同的通用名称保存证书。

最后,尝试重新连接。


如果任何其他计算机上的(正在运行的)客户端都可用,则从那里导出证书并按照您描述的方式再次导入它(都使用证书管理器)。
欺负者

2

简单的方法,

  1. 关闭皮金
  2. 寻找你的证书文件夹(Win­dows: %appdata%\.purple)(Linux的:/home/<Username>/.purple/certificates/x509/tls_peers
  3. 删除证书文件夹中的所有内容。
  4. 重新启动pidgin,最终您将获得一个可以使用的新证书。

PS:不熟悉的Windows用户%app­data%只需%appdata%\.purple在地址栏中输入并按Enter。


1

通过几次用保存的副本手动替换证书,我可以解决证书问题。此后停止工作,升级到2.11似乎无济于事。

如果您是从源代码构建的,则可以尝试的一件事就是修改libpurple / certificates.c的源代码;将PURPLE_CERTIFICATE_FATALS_MASK检查移到PURPLE_CERTIFICATE_NON_FATALS_MASK检查下以提示用户,但允许接受证书。可能不是最安全的事情,但对我有用。


1

您可以使用Pidgin-developers PPA来解决它。我从该源安装了pidgin软件包和libpurple,它解决了我访问Lync 2013资源的问题。现在,它可以自动允许证书(显示对话框接受或拒绝未知证书)。你有尝试过吗?如果您使用的是15.04,则还有一种解决方法,可以下载一些软件包并用新软件包替换旧软件包。我已经在15.04上对其进行了测试,它可以工作。


如果您可以共享要下载的“少量软件包”以及要替换的软件包,将很有帮助。问题是,我现在拥有15.04和pidgin 2.10.11,但是仍然有关于证书的臭名昭著的错误消息。
Jacobian

所有这些软件包都在pidgin repo中,当您尝试安装pidgin和libourple时会找到它们,或者您可以将具有以前发行版的pidgin repo添加到sources.list中并进行常规安装,它将自动安装所有依赖项,但是请检查pidgin PPA ,也许它已经具有生动的版本
user3417815 2015年

好吧,关于证书的消息仍然存在于pidgin中,但是您现在将能够接受每个会话的证书
user3417815 2015年

因此,如果它们已经在仓库中,为什么不自动安装它们呢?能否请您命名其中一些软件包,以便我找到它们?并且您是否愿意分享如何安装此软件包(与pidgin分开使用还是使用./configure或其他方法?),否则“常规安装”听起来就很模糊。
Jacobian

正如我所说的是PPA,但是您可以检查一下,并且可能会发现它没有特别针对15.04的版本。因此,如果将其添加为PPA,则可能无法从那里安装任何软件包。有道理吗?抱歉,大约一个月前检查了此PPA,仍然没有任何生动的版本。
user3417815

0

强制pidgin下载新证书。

rm ~/.purple/certificates/x509/tls_peers/*

关闭并重新打开pidgin。

ls ~/.purple/certificates/x509/tls_peers/*

现在,这应该列出新下载的证书。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.