TLS / SSL使用公钥基础结构。需要进行身份验证的服务需要公钥和私钥。另一个端点(验证服务)只需要公钥(甚至更好的只需要CA证书 - 公钥)。默认情况下使用TLS / SSL时,只会验证客户端连接的“服务器”。在这种情况下,节拍是客户端,Logstash是服务器。
此外,服务器可以请求客户端进行身份验证(使用证书)。此模式称为客户端身份验证,必须在服务器(Logstash)中显式启用。启用客户端身份验证后,客户端还需要证书和私钥+服务器需要证书(或CA证书)才能验证/验证客户端。
无论如何,当使用client-auth时,每个客户端都应该拥有自己的具有匹配IP /域名的客户端证书。 Plus Logstash应该只有CA公共证书进行验证。这归结为具有适当的CA基础结构。
切勿与其他计算机共享端点/计算机的私钥。
将私钥分发给每个metricbeat代理是不好的做法吗?
的确是。
该私钥是否应该有密码?
如果可能的话(因为私钥应该加密),但这很可能是混淆访问,如
密码的某个地方
必须配置,以便可以使用密钥。尽管如此,如果密钥被盗,加密密钥可以在一定程度上减少损害。
没有客户端身份验证,beats配置应该(至少)像:
output.logstash:
hosts: [“host.url:5044”]
ssl.certificate_authorities:
- /host/certs/logstash-beats.crt
</code>
使用客户端身份验证,beats配置应该(至少)像:
output.logstash:
hosts: [“host.url:5044”]
ssl.certificate_authorities:
- /host/certs/logstash-beats.crt
ssl.certificate: "/host/certs/reporter.crt"
ssl.key: "/host/certs/reporter-private.key"
ssl.key_passphrase: ...
</code>