VS2022使用MQTTnet控件无法连接到EMQX 8883端口

环境

  • EMQX 版本:V5.3.2
  • 操作系统版本:win10 企业版 LSTC

重现此问题的步骤

  1. 使用ESP8266 tls 方式2 不校验证书通讯正常

  2. 使用MQTTX SSL/TLS开启,SSL安全关闭,通讯正常

  3. 使用vs2022 MQTTnet控件连接 broker.hivemq.com 8883,mqtt.eclipseprojects.io 8883等通讯正常,连接EMQX 1883端口可以正常连接,但连接EMQX 8883端口无响应

  4. MQTTnet控件设置如下:
    var MyOp = new MqttClientTlsOptions();
    MyOp.UseTls = useTls;
    MyOp.SslProtocol = System.Security.Authentication.SslProtocols.Tls12;
    MyOp.CertificateValidationHandler = False;
    MyOp.AllowUntrustedCertificates = true;

          var optionsBuilder = new MqttClientOptionsBuilder()
           .WithTcpServer(SvrAdd, SvrPort)
           .WithCredentials(UsrName, PassWord)
           .WithClientId(ID)
           .WithCleanSession()
           .WithTlsOptions(MyOp); 
    

预期行为

应该能连接到EMQX 8883端口

实际行为 无响应

1 跟 2 提示 SSL 握手可能因为校验服务端失败了。

可能是因为 4 里面的 CA 证书没有配置,一般情况会有一个专门的方法配置 CA 证书,或者把 CA 证书跟证书放到同一个文件里面。