0

I am using MQTTnet to connect MQTT broker with TLS

Broker's company said we use mosquitto broker and will provide client with ca.crt file to connect our broker

So we use only ca.crt(CA certificate) file to connect broker

public async Task MqttConnect()
    {
        client = mqttFactory.CreateMqttClient();

        var tlsOptions = new MqttClientOptionsBuilderTlsParameters
        {
            UseTls = true,
            SslProtocol = System.Security.Authentication.SslProtocols.Tls12,
            Certificates = new List<X509Certificate>
            {
                new X509Certificate2(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"ca.crt"))
            }
            ,
            AllowUntrustedCertificates =true,
            IgnoreCertificateChainErrors =true,
            IgnoreCertificateRevocationErrors = true
        };

        var options = new MqttClientOptionsBuilder()
                .WithTcpServer(MqttIP, Int16.Parse(Mqttport))
                            .WithClientId("Client")
                            .WithCredentials(UserID, UserPW)
                            .WithTls(tlsOptions)
                            .Build();

        await client.ConnectAsync(options);

This code can connect test.mosquitto.org with test.mosquitto.crt TLS(RSA 2048bits) file

But can't connect Broker Company's mosquitto with TLS(ECDSA ECC 521 Bits)

Error : OpenSSL Error[0]: error:1417A0C1:SSL routines:tls_post_process_client_hello:no shared cipher Socket error on client , disconnecting.

Does MQTTnet not support TLS crypto ECDSA ECC 521bits? or Do I add some other code?

0 Answers0