通过终端(在 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 中)将其标记为受信任。