开发者社区 > 云原生 > 消息队列 > 正文

同样的kafka配置,用java的示例代码能走通,用c#代码走不通;求大神告知一下怎么解决

image.png

9018469692e385a8113428c0ed12e94.png

c# 代码一直报:证书验证失败:无法验证broker证书,请验证是否正确配置了SSL.ca.location或安装了根ca证书(将broker的ca证书添加到Windows根证书存储中)

配置如下:
消息对象kafka配置:
专业版(高写版)
后付费公网/VPC实例高效云盘
配置了SASL用户,给Topic配置了权限

展开
收起
游客ilak2nmqwn6xa 2023-09-05 17:45:15 82 0
2 条回答
写回答
取消 提交回答
  • 这个问题可能是由于C#代码中SSL证书验证的配置不正确导致的。你可以尝试以下方法解决这个问题:

    1. 确保你的C#代码中使用的是正确的SSL证书。你可以检查Kafka Broker的SSL证书是否正确配置,并确保在C#代码中使用相同的证书。

    2. 如果你使用的是自签名证书,你需要将该证书添加到C#代码中的Trusted Root Certification Authorities(root certificate authorities)列表中。这样,C#代码就可以验证自签名证书了。

    3. 如果你使用的是受信任的第三方证书机构颁发的证书,你需要将该证书添加到C#代码中的Trusted Root Certification Authorities(root certificate authorities)列表中。这样,C#代码就可以验证该证书了。

    4. 另外,你可以尝试在C#代码中禁用SSL证书验证。但是请注意,这样做会降低安全性,因为它允许连接到未经验证的服务器。只有在你确定连接是安全的,并且不需要验证服务器身份时才应该禁用SSL证书验证。

    以下是一个示例代码片段,展示了如何在C#中禁用SSL证书验证:

    using System;
    using System.Net.Security;
    using System.Security.Authentication;
    using System.Security.Cryptography.X509Certificates;
    
    // ...
    
    var clientHandler = new WebRequestHandler();
    clientHandler.ClientCertificates.Add(new X509Certificate2("path/to/your/certificate.pfx", "password"));
    
    clientHandler.SslProtocols = SslProtocols.Tls12;
    clientHandler.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; // 禁用证书验证
    
    var httpClient = new HttpClient(clientHandler);
    
    // 使用httpClient发送请求...
    

    请根据你的实际情况修改代码中的证书路径和密码,并确保将正确的证书添加到clientHandler.ClientCertificates集合中。

    希望这些信息对你有所帮助!如果还有其他问题,请随时提问。

    2023-09-06 12:32:08
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,这个问题可能是因为C#代码中没有正确配置SSL证书所致。您需要确保您的C#代码中已经正确配置了SSL证书。以下是可能有帮助的几个建议:

    1. 检查C#代码中的SSL证书配置是否正确。您需要确保您的代码中已经正确设置了SSL证书。特别是,在使用Kafka时,需要指定证书位置的方式可能会有所不同。您可以检查一下,看您在C#代码中指定的证书位置是否正确。

    2. 检查您的证书是否有效,并且是否来自一个可信的CA机构。如果您的证书无效或不够安全,Kafka可能会拒绝连接。您可以尝试获取一个有效的证书,并根据Kafka的要求正确安装它。

    3. 尝试将证书添加到Windows根证书存储区中。如果您无法访问有效的证书,或者您的代码无法读取证书位置,您可以尝试将证书添加到Windows根证书存储区中。这样做可以使证书对所有应用程序都可见,包括C#代码。

    2023-09-06 08:31:48
    赞同 展开评论 打赏

高弹性低成本、更稳定更安全、智能化免运维的消息队列服务,涵盖RocketMQ、Kafka、RabbitMQ、MQTT、MNS等。 RocketMQ一站式学习:https://rocketmq-learning.com

相关产品

  • 云消息队列 Kafka 版
  • 相关电子书

    更多
    Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
    The Reactive Cloud Native Arch 立即下载
    JAVA开发手册1.5.0 立即下载