Mac 上的 SSL 握手失败

Mac 上的 SSL 握手失败

一些背景知识。我正尝试使用 .NET 驱动程序连接到 Confluents Kafka Clound,内部使用本机 RdKafka 机制。

从我的机器上,连接失败,并显示

rdkafka#producer-1| [thrd:sasl_ssl://url_to_cluster: sasl_ssl://url_to_bootstrap:SSL 握手失败:s3_clnt.c:1269:错误:14090086:SSL 例程:ssl3_get_server_certificate:证书验证失败:(CONNECT 状态下 75 毫秒后)

客户端有一个EnableSslCertificateVerification属性,如果我设置它,false一切都会正常工作。

但请忽略此处与 .NET 和 Kafka 相关的信息,仅介绍背景。这里涉及我的机器上的哪些内容?我是否在本地缺少某种形式的证书?

我确实安装了 openssl,据我所知,它默认信任一堆根证书。

它对所有同事都适用,即使是使用最新操作系统更新的 Mac 用户也是如此。如果我从 Docker 内部运行它,它在我的计算机上也能正常工作。

我可以检查什么来解决这个问题?

答案1

librdkafka 不使用 OSX Keychain/store,而是依赖于磁盘上的 CA 证书文件。openssl brew 包从存储中提取 CA 证书并在安装时将其写入磁盘,因此可以通过 homebrew 安装 openssl 或 grabcacert.pem来自 Mozilla/curl,然后指定SslCaLocation您将其存储到哪里。

答案2

您需要安装用于签署服务器 TLS 证书的 CA 证书。您没有提供该信息,但您可以轻松检查服务器的配置,例如:

openssl s_client -connect <server>:<port> -showcerts

相关内容