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