我正在使用 Kafka(版本 2.3.0)和 Zookeeper(版本 3.5.5-3)-稳定版本是 3.6.3。
当我使用此命令测试我的 Zookeeper 的 SSL 时:
openssl s_client -showcerts -connect 127.0.0.1:2280 -CAfile /certs/ca-chain.cert.pem
我收到了这个错误:
140371409225024:error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate:../ssl/record/rec_layer_s3.c:1543:SSL alert number 42
但是如果我安装 Zookeeper 3.5.7 及更高版本,我可以在我的 zoo.cnf 或 zookeeper.properties 中添加以下内容:
ssl.clientAuth=want
我不再看到任何 SSL 错误。
关于如何在不升级的情况下修复此 SSL 错误的任何提示/建议(我暂时不想更新以避免其他冲突,如 Kafka Cruise Control 等)。
提前致谢!
答案1
直到 3.5.7 版,Zookeeper 都要求双向 TLS,即客户端使用自己的证书进行身份验证。只有从 3.5.7 版开始,它才可以将客户端证书设为可选(“需要”)或甚至不要求(“无”)。这意味着旧版本的唯一方法是实际拥有客户端证书,即 的-cert
和-key
选项openssl s_client
。