AuthenticationException: 使用带有证书的 mqtt 连接时,根据验证程序,远程证书无效

时间:2021-03-30 10:07:15

标签: authentication .net-core mqtt x509certificate aws-iot

我已经创建了一个控制台应用程序。 AWS IoT Greengrass 托管在单独的虚拟机上。客户端代码如下。

static void Main(string[] args)
{
    string iotEndpoint = "ip addess"; //"<<your-iot-endpoint>>";
    Console.WriteLine("AWS IoT Dotnet core message publisher starting");
    int brokerPort = 8883;

    string message = "Test message";
    string topic = "device/aggregator";

    string path = AppContext.BaseDirectory;
    var caCert = X509Certificate.CreateFromCertFile(Path.Join(AppContext.BaseDirectory, "ggc-root.ca.pem")); 
    var clientCert = new X509Certificate2(Path.Join(AppContext.BaseDirectory, "788124d2bd.cert.pfx"),"abc");

    var client = new MqttClient(iotEndpoint, brokerPort, true, caCert, clientCert, MqttSslProtocols.TLSv1_2);

    string clientId = Guid.NewGuid().ToString();
    client.Connect(clientId); //Getting error
    Console.WriteLine($"Connected to AWS IoT with client id: {clientId}.");

    int i = 0;
    while (true)
    {
        client.Publish(topic, Encoding.UTF8.GetBytes($"{message} {i}"));
        Console.WriteLine($"Published: {message} {i}");
        i++;
        Thread.Sleep(5000);
    }
}

执行控制台应用程序时,上面的代码client.Connect(clientId);Error => AuthenticationException: The remote certificate is invalid according to the validation procedure. & 错误 => M2Mqtt.Exceptions.MqttConnectionException: 'Exception connecting to the broker'.

如何解决这个问题?

0 个答案:

没有答案