SSL 客户端无法连接到 Logstash
编辑SSL 客户端无法连接到 Logstash
编辑运行 Logstash 的主机可能无法访问,或者证书可能无效。要解决您的问题
-
请确保 Logstash 正在运行并且您可以连接到它。首先,尝试 ping Logstash 主机以验证您是否可以从运行 Packetbeat 的主机访问它。然后使用
nc
或telnet
确保端口可用。例如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
编辑这可能是由于以下几个原因造成的
- 加密文件未被识别为加密的 PEM 块。Packetbeat 尝试将加密内容用作最终密钥,这会失败。
- 该文件在 PEM 块中正确加密,但解密的内容不是 Packetbeat 可识别格式的密钥。密钥必须编码为 PEM 格式。
- 密码短语缺失或有错误。
x509: cannot validate certificate for <IP address> because it doesn’t contain any IP SANs
编辑发生这种情况是因为您的证书仅对 Subject 字段中存在的主机名有效。
要解决此问题,请尝试以下方法之一
- 为主机名创建 DNS 条目,将其映射到服务器的 IP。
- 在
/etc/hosts
中为主机名创建条目。或者在 Windows 上,将条目添加到C:\Windows\System32\drivers\etc\hosts
。 - 重新创建服务器证书,并为服务器的 IP 地址添加 SubjectAltName (SAN)。这使得服务器的证书对于主机名和 IP 地址都有效。
getsockopt: no route to host
编辑这不是 SSL 问题。这是一个网络问题。请确保这两个主机可以通信。
getsockopt: connection refused
编辑这不是 SSL 问题。请确保 Logstash 正在运行,并且没有防火墙阻止流量。
由于目标计算机主动拒绝连接,因此无法建立连接
编辑防火墙正在拒绝连接。检查客户端、网络或目标主机上是否有防火墙阻止流量。