如果“ssl_verify”选项关闭,WeeChat 仅使用 SSL 连接到 IRC 服务器

如果“ssl_verify”选项关闭,WeeChat 仅使用 SSL 连接到 IRC 服务器

通过终端(在 Arch Linux 上)使用 WeeChat,我可以使用 SSL 连接到 Freenode 的服务器。那里没有问题。

但如果我尝试连接到一些使用 SSL 的 IRC 服务器(例如 ircs.overthewire.org),WeeChat 出现以下错误:

gnutls: peer's certificate is NOT trusted
gnutls: peer's certificate issuer is unknown
irc: TLS handshake failed
irc: error: Error in the certificate.

仅当我按照以下建议执行以下操作时,才能使用 SSL 连接到此类服务器微信常见问题

/set irc.server.example.ssl_verify off

然而,同样的常见问题解答说我应该小心,因为这会降低安全性。

这是我能修复的问题吗,或者这是我必须忍受的一些 IRC 服务器的问题?

答案1

TLS/SSL 在此处的工作方式与 Web 浏览器中的 HTTPS 相同。如果服务器的证书有效,您可以访问该网站;如果无效,您会收到来自浏览器(客户端)的可怕警告,因为它无法知道验证失败是服务器被冒充的结果,还是管理员网站上无害的配置错误。

(不幸的是,大多数 IRC 服务器运营商不要关心保持其 TLS 证书为最新 – 或者甚至首先获取有效的证书。

在这种情况下,ircs.overthewire.org:6697至少有一个 TLS 证书以前是有效,但由于各种错误发行,其发行者(StartCom Ltd.)不再受到大多数系统的信任。您会收到“发行者未知”的消息,因为您的操作系统不再安装 StartCom 根 CA 证书。

您有两个选择:

  • 不要使用基于 CA 的验证,而是告诉 Weechat 接受此特定证书因为您已经使用另一种方法对其进行了验证。(基本上是 SSH 使用的方法。)为此,请将选项设置为证书的 SHA-256 指纹(或安全性较低的 SHA-1)。irc.server.example.ssl_fingerprint

    服务器当前提供的证书指纹为:

    sha1   = 540fbfe14671915ee939b3a78b8ce52bf45c8e85
    sha256 = 5916acbdfff8e1474402c75ccba2858c23e93348607d122e4f3106cbed6ab1ff
    

    这将一直有效,直到服务器操作员更改证书,此时您必须使用新的指纹更新选项,或再次尝试使用ssl_verify = on

  • 不推荐:下载 StartCom 根 CA 并在您的操作系统中(或至少在 Weechat 中)将其标记为受信任。

相关内容