ngircd / xchat SSL 问题

ngircd / xchat SSL 问题

我正在尝试在 Fedora 18 上设置 ngircd IRC 服务器(使用 yum 安装),但遇到一些 SSL 问题。如果我选择“接受无效的 SSL 证书”,我可以本地和远程连接到服务器,但否则会出现错误。以下是我尝试本地连接到 IRC 服务器时的 XChat 输出:

* Connecting to {domain_name} ({ip_address}) port 6697...
* * Subject: /OU=Domain Control Validated/OU=PositiveSSL/CN={domain_name}
* * Issuer: /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=PositiveSSL CA 2
* * Subject: /OU=Domain Control Validated/OU=PositiveSSL/CN={domain_name}
* * Issuer: /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=PositiveSSL CA 2
* * Subject: /OU=Domain Control Validated/OU=PositiveSSL/CN={domain_name}
* * Issuer: /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=PositiveSSL CA 2
* * Certification info:
*   Subject:
*     OU=Domain Control Validated
*     OU=PositiveSSL
*     CN={domain_name}
*   Issuer:
*     C=GB
*     ST=Greater Manchester
*     L=Salford
*     O=COMODO CA Limited
*     CN=PositiveSSL CA 2
*   Public key algorithm: rsaEncryption (2048 bits)
*   Sign algorithm sha1WithRSAEncryption
*   Valid since Nov  7 00:00:00 2012 GMT to Nov  7 23:59:59 2015 GMT
* * Cipher info:
*   Version: TLSv1/SSLv3, cipher DHE-RSA-AES256-SHA (256 bits)
* Connection failed. Error: unable to verify the first certificate.? (21)

这是我的文件的 SSL 部分ngircd.conf。我跑去ngircd --configtest测试配置文件,但它只是将文件的内容打印到我的终端。

[SSL]
  CertFile = /etc/pki/tls/certs/{domain_name}.crt
  DHFile = /etc/pki/tls/private/dhparams.pem
  KeyFile = /etc/pki/tls/private/{domain_name}.pem
  KeyFilePassword = {key_file_password}
  Ports = 6697

我还尝试使用 mIRC 从 Windows 7 x64 计算机远程连接到服务器,但也遇到了问题。

我无法确认,但我认为 Fedora 使用 GnuTLS 编译 ngircd,并且我认为我的密钥是使用 OpenSSL 创建的。如果是这样,密钥会采用不同的格式吗?我如何检查并转换它们?

这是否可能是我两台机器上的 CA 信任问题?如果是这样,我如何/在哪里可以在 Fedora 18 和 Windows 7 中添加 CA 根证书,这样我就不会遇到这个问题?

还有其他可能的原因吗?我还需要提供其他信息吗?

答案1

ngircd 支持该指令:

[SSL]
CipherList = @SYSTEM

您还想检查您正在使用的证书:

openssl x509 -text -noout -in cert.pem

对于 Let's Encrypt,我使用了 fullchain.pem 并使用 HexChat 通过 SSL 在端口 6697 上连接到 ngircd。

答案2

就我而言,certfile 中列出的证书顺序错误,因此 ngircd 无法正常启动,并且客户端给出连接错误,例如:

Irssi: warning SSL handshake failed: Connection refused

将证书编辑为最长的第一个(也称为最后的根 CA)后,服务器正确启动并且客户端将连接。

相关内容