SSL 客户端无法连接到 Logstash

编辑

SSL 客户端无法连接到 Logstash

编辑

运行 Logstash 的主机可能无法访问,或者证书可能无效。要解决您的问题:

  • 请确保 Logstash 正在运行并且您可以连接到它。首先,尝试 ping Logstash 主机以验证您是否可以从运行 Winlogbeat 的主机访问它。然后使用 nctelnet 确保端口可用。例如:

    ping <hostname or IP>
    telnet <hostname or IP> 5044
  • 验证证书是否有效,并且主机名和 IP 地址是否匹配。

    仅为了测试目的,您可以设置 verification_mode: none 以禁用主机名检查。

  • 使用 OpenSSL 测试与 Logstash 服务器的连接并诊断问题。有关更多信息,请参阅 OpenSSL 文档
  • 确保在配置 Logstash 的 Beats 输入插件时启用了 SSL(设置 ssl => true)。

常见的 SSL 相关错误和解决方法

编辑

以下是一些常见错误及其解决方法:

tls: failed to parse private key (tls:无法解析私钥)

编辑

这可能是由于以下几个原因引起的:

  • 加密文件未被识别为加密的 PEM 块。Winlogbeat 尝试将加密内容用作最终密钥,这会失败。
  • 文件在 PEM 块中正确加密,但解密的内容不是 Winlogbeat 可以识别的格式的密钥。密钥必须以 PEM 格式编码。
  • 密码短语缺失或有错误。

x509: cannot validate certificate for <IP address> because it doesn’t contain any IP SANs (x509:无法验证 <IP 地址> 的证书,因为它不包含任何 IP SAN)

编辑

发生这种情况是因为您的证书仅对 Subject 字段中存在的主机名有效。

要解决此问题,请尝试以下解决方案之一:

  • 为映射到服务器 IP 的主机名创建 DNS 条目。
  • /etc/hosts 中为主机名创建条目。或者在 Windows 上,向 C:\Windows\System32\drivers\etc\hosts 添加条目。
  • 重新创建服务器证书并为服务器的 IP 地址添加 SubjectAltName (SAN)。这使服务器的证书对主机名和 IP 地址都有效。

getsockopt: no route to host (getsockopt:没有到主机的路由)

编辑

这不是 SSL 问题。这是一个网络问题。请确保两个主机可以通信。

getsockopt: connection refused (getsockopt:连接被拒绝)

编辑

这不是 SSL 问题。请确保 Logstash 正在运行,并且没有防火墙阻止流量。

No connection could be made because the target machine actively refused it (由于目标计算机主动拒绝,无法建立连接)

编辑

防火墙正在拒绝连接。检查客户端、网络或目标主机上的防火墙是否正在阻止流量。