我正在尝试将 fluent-bit 客户端(在 Docker 容器中运行)连接到使用 TLS 运行 Fluentd 的服务器。
Fluent-bit 客户端配置:
[SERVICE]
Flush 2
Daemon Off
Log_level debug
[INPUT]
Name Dummy
[OUTPUT]
Name forward
Host SERVER_IP
Port PORT
tls on
tls.ca_file /tls/certs/ca.crt.pem
tls.crt_file /tls/certs/client.crt.pem
tls.key_file /tls/private/client.key.pem
tls.key_passwd PASSWORD
tls.debug 3
Fluentd 服务器配置:
<source>
@type forward
@id input_forward
port PORT
# tls
<transport tls>
version TLSv1_2
ca_path /etc/td-agent/tls/certs/ca.crt.pem
cert_path /etc/td-agent/tls/certs/server.crt.pem
private_key_path /etc/td-agent/tls/private/server.key.pem
private_key_passphrase PASSWORD
ca_private_key_passphrase PASSWORD
</transport>
</source>
当我在两端启动服务并尝试发送消息时,Fluentd(服务器)日志中会显示此错误:
2020-11-06 11:30:45 -0500 [warn]: #0 [input_forward] unexpected error before accepting TLS connection by OpenSSL error_class=OpenSSL::SSL::SSLError error="SSL_accept returned=1 errno=0 state=error: sslv3 alert bad certificate"
但是,当我手动尝试使用 openssl 命令行工具将客户端连接到 Fluentd 服务器时,连接正常:
openssl s_client -connect IPADDR:PORT -CAfile certs/ca.crt.pem -cert certs/client.crt.pem -key private/client.key.pem -tls1_2 -state -quiet
因此,我假设服务器正在执行一些检查 openssl CL 客户端是否正在执行,但在 Docker 容器中运行的 fluent-bit 不是。
任何建议都非常感谢。