1

我有 2 台服务器:

  • 日志存储服务器
  • 应用服务器

如果我在 logstash 服务器上运行 logstash-forwarder - 没关系。

但是,如果我在应用服务器上运行 logstash-forwarder,我会收到一个错误:

Failed to tls handshake with <ip> x509: certificate has expired or is not yet valid

当我通过命令检查证书时:

openssl x509 -in logstash-forwarder.crt -noout -text

我拿了一个有效的证书:

        ...
        Validity
        Not Before: Jun 28 17:33:36 2015 GMT
        Not After : Jun 27 17:33:36 2016 GMT
        ...
        X509v3 extensions:
        X509v3 Subject Alternative Name: 
            IP Address:<ip>

应用服务日期:

root@app:/etc/pki/logstash# date
Sun Jun 28 20:53:30 MSK 2015

怎么了?

4

1 回答 1

0

我遇到了类似的问题并修复了它。看起来您没有为您的 logstash 索引服务器设置任何 DNS。在这种情况下,您必须将 SAN 设置为openssl.cnf并重新生成证书和密钥。

如何设置 SAN?

sudo vi /etc/pki/tls/openssl.cnf

在文件中找到[ v3_ca ]部分,并在其下添加这一行(替换为 Logstash 索引服务器的 IP 地址):

subjectAltName = IP: logstash__index_server_private_ip

之后尝试重新生成您的证书和密钥

cd /etc/pki/tls
sudo openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

并更改您的配置文件以相应地从两端(索引和转发器)指向证书和密钥。希望这会为你锻炼。

于 2015-07-07T05:10:42.583 回答