我正在学习如何使用 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
我很困惑,因为我自己可以在那里看到它。那么我做错了什么?谢谢