That Brazilian Guy Asked: 2015-04-18 09:59:17 +0800 CST2015-04-18 09:59:17 +0800 CST 2015-04-18 09:59:17 +0800 CST 强制 Pidgin 接受无效证书 772 我在 Pidgin 2.10.10-3.fc20 (libpurple 2.10.10) 上收到以下错误。 我怎样才能强制它接受无效的证书? (根据这个错误报告,它应该是有能力的)。 这是我所做的: 在 Firefox 上访问域,并导出证书 在 Pidgin工具上导入证书->证书 seahorse在(gnome 密钥环 GUI)上导入证书 pidgin 8 个回答 Voted Martin 2015-05-16T00:08:53+08:002015-05-16T00:08:53+08:00 或者,您可以手动下载 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----- Best Answer That Brazilian Guy 2015-05-06T09:52:47+08:002015-05-06T09:52:47+08:00 事实证明,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) tobigue 2015-07-14T05:15:43+08:002015-07-14T05:15:43+08:00 Tools通过→导入证书时输入的名称与XMPP 帐户配置中的Certificates匹配似乎很重要。connect server这是我能够让它为同样的错误工作的唯一方法。 Y Melo 2016-04-09T02:38:10+08:002016-04-09T02:38:10+08:00 另一种解决方法是导入错误中指定的服务器名称,例如myserver.chat.com. 例如: 打开 Firefox 浏览器并输入 URL: HTTPS://mysever.chat.com,你会得到一个错误: 选择,Advanced然后选择Add Exception。证书的弹出窗口将打开。 然后点击Advanced-> Details->Export 将证书保存在某处 打开 Pidgin,转到Tools-> Certificates->Add 现在将证书保存为与一开始的错误相同的通用名称。 最后,尝试重新连接。 Nullpointer 2016-09-20T05:23:59+08:002016-09-20T05:23:59+08:00 简单的方法, 关闭洋泾浜 找到您的证书文件夹 ( Windows: %appdata%\.purple) (Linux: /home/<Username>/.purple/certificates/x509/tls_peers) 删除证书文件夹中的所有内容。 重新启动 pidgin,最终你应该得到一个有效的新证书。 PS:不熟悉的 Windows 用户%appdata%只需%appdata%\.purple在地址栏中输入并按回车键即可。 user3417815 2015-04-30T04:56:30+08:002015-04-30T04:56:30+08:00 可以使用 Pidgin-developers PPA来解决。我从那个来源安装了 pidgin 包和 libpurple,它解决了我访问 Lync 2013 资源的问题。现在它可以自动允许证书(显示接受或拒绝未知证书的对话框)。你试过了吗?如果您使用的是 15.04,还有一种解决方法是下载一些软件包并将旧的替换为新的。我已经在 15.04 上测试过了,它可以工作。 user591856 2016-09-08T06:23:03+08:002016-09-08T06:23:03+08:00 通过几次用保存的副本手动替换它,我能够解决证书问题。之后停止工作,升级到 2.11 似乎没有帮助。 如果您从源代码构建,可以尝试修改 libpurple/certificates.c 的源代码;将 PURPLE_CERTIFICATE_FATALS_MASK 检查移动到 PURPLE_CERTIFICATE_NON_FATALS_MASK 检查下以提示用户,但如果接受则允许证书。可能不是最安全的做法,但对我有用。 Binoy 2016-03-18T20:59:25+08:002016-03-18T20:59:25+08:00 强制 pidgin 下载新证书。 rm ~/.purple/certificates/x509/tls_peers/* 关闭并重新打开 pidgin。 ls ~/.purple/certificates/x509/tls_peers/* 现在这应该列出新下载的证书。
或者,您可以手动下载 ssl 证书。之后 pidgin 开始没有问题。要下载证书,您可以使用 openssl 命令行实用程序。
当上述命令失败并显示“没有可用的对等证书”时,服务器可能使用 STARTTLS 而不是 SSL。在这种情况下,请使用以下命令:
现在复制以“----BEGIN CERTIFICATE----”开头的部分。如果您打印证书文件的内容,它将如下所示:
事实证明,Pidgin 2.10.10 (libpurple 2.10.10) 中的证书存在一个错误:
升级到 2.10.11 可解决此问题。如果您像我一样使用较旧的 Ubuntu 版本,则可以使用PPA(12.04、14.04 和 14.10)
Tools通过→导入证书时输入的名称与XMPP 帐户配置中的Certificates匹配似乎很重要。
connect server
这是我能够让它为同样的错误工作的唯一方法。另一种解决方法是导入错误中指定的服务器名称,例如
myserver.chat.com
. 例如:打开 Firefox 浏览器并输入 URL:
HTTPS://mysever.chat.com
,你会得到一个错误:选择,
Advanced
然后选择Add Exception
。证书的弹出窗口将打开。然后点击
Advanced
->Details
->Export
将证书保存在某处
打开 Pidgin,转到
Tools
->Certificates
->Add
现在将证书保存为与一开始的错误相同的通用名称。最后,尝试重新连接。
简单的方法,
Windows: %appdata%\.purple
) (Linux:/home/<Username>/.purple/certificates/x509/tls_peers
)PS:不熟悉的 Windows 用户
%appdata%
只需%appdata%\.purple
在地址栏中输入并按回车键即可。可以使用 Pidgin-developers PPA来解决。我从那个来源安装了 pidgin 包和 libpurple,它解决了我访问 Lync 2013 资源的问题。现在它可以自动允许证书(显示接受或拒绝未知证书的对话框)。你试过了吗?如果您使用的是 15.04,还有一种解决方法是下载一些软件包并将旧的替换为新的。我已经在 15.04 上测试过了,它可以工作。
通过几次用保存的副本手动替换它,我能够解决证书问题。之后停止工作,升级到 2.11 似乎没有帮助。
如果您从源代码构建,可以尝试修改 libpurple/certificates.c 的源代码;将 PURPLE_CERTIFICATE_FATALS_MASK 检查移动到 PURPLE_CERTIFICATE_NON_FATALS_MASK 检查下以提示用户,但如果接受则允许证书。可能不是最安全的做法,但对我有用。
强制 pidgin 下载新证书。
关闭并重新打开 pidgin。
现在这应该列出新下载的证书。