1

我正在学习如何使用 logstash 和 logstash-forwarder。问题是logstash 不允许使用SSL 进行通信。我使用的是 IP 方法而不是 DNS。Kibana、Elastic Search 和 Logstash 安装在 docker 容器内。我已经在容器中生成了一个证书。在那里,我有/etc/pki/tls/{certs,private}目录,分别保存 .crt 和 .key 文件。我已将它们复制到 docker 主机。如果我运行,openssl x509 -noout -text -in logstash-forwarder.crt我可以看到我拥有的证书内部:

    X509v3 extensions:
        X509v3 Subject Alternative Name:
            IP Address:172.17.0.47

这是将为 kibana 服务的 docker 容器的 IP。在我用作测试主题以发送日志的 docker 容器内(它正在运行 php 应用程序和 nginx),我有 logstash.json 配置文件,该文件具有:

{
  "network": {
    "servers": [ "172.17.0.47:5000" ],
    "timeout": 15,
    "ssl ca": "/srv/logstash/logstash-forwarder.crt"
}

在该位置/srv/logstash/logstash-forwarder.crt,我可以看到它是相同的键,并且还有以下行:

    X509v3 extensions:
        X509v3 Subject Alternative Name:
            IP Address:172.17.0.47

在里面。即 SANS 是 172.17.0.47 当我运行时./logstash-forwarder --config /srv/logstash/logstash.json我得到

2015/07/24 07:57:16.835391 从文件设置受信任的 CA:/srv/logstash/logstash-forwarder.crt 2015/07/24 07:57:16.835949 连接到 [172.17.0.47]:5000 (172.17.0.47) 2015/07/24 07:57:16.852710 无法与 172.17.0.47 x509 握手:无法验证 172.17.0.47 的证书,因为它不包含任何 IP SAN 2015/07/24 07:57:17.856153 连接到 [172.17 .0.47]:5000 (172.17.0.47) 2015/07/24 07:57:17.874499 无法与 172.17.0.47 x509 握手:无法验证 172.17.0.47 的证书,因为它不包含任何 IP SAN

我很困惑,因为我自己可以在那里看到它。那么我做错了什么?谢谢

4

0 回答 0