首页 > 解决方案 > Kafka Confluent Client .NET Core 无法访问 Windows 中间证书颁发机构

问题描述

我在这里发布了一个关于设置EnableSslCertificateVerification设置的问题 yo true 它如何在 Windows 上不起作用。SSL 握手失败。

我发现这可以通过添加SslCaLocation设置来解决,如下所示:

"Dev-on-Windows": {
      "commandName": "Project",
      "environmentVariables": {
        "Kafka__BootstrapServers": "myloadbalancer.myhost.corp:9094",
        "Kafka__EnableSslCertificateVerification": "true",
        "Kafka__SchemaRegistryUrl": "myschemareg.myhost.corp:8081,myschemreg2.myhost.corp:8081",
        "Kafka__SecurityProtocol": "SaslSsl",
        "Kafka__SslCaLocation": "cacert.pem",
        "Kafka__SaslMechanism": "Gssapi",       
        "Kafka__ClientId": "DotNetCoreReferenceApplication",
        "Kafka__ErrorTolerance": "Moderate",
        "Kafka__Debug" : "all",
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "https://localhost:5001;http://localhost:5000"
    },

其中 cacert.pem 文件只是证书签名 PK 的串联。这样可行。我不确定为什么在理想情况下它应该能够检查 Windows 上受信任的根存储时需要这样做。

更新

需要两个证书。其中一个在受信任的根证书颁发机构中,另一个在中间证书颁发机构中。

我删除了SslCaLocation配置,只是将第二个证书从中间存储区导入到根存储区,它就可以工作了。

Kafka 的 Confluent Client Lib / Windows 的 librdkafka 是否不查看中间证书存储?

标签: apache-kafkaconfluent-platformlibrdkafka

解决方案


推荐阅读