我已经创建了一个控制台应用程序。 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'.
如何解决这个问题?