У меня следующая ошибка: при попытке подключиться к брокеру mosquitto на сервере, используя следующие параметры, я получаю следующую ошибку о закрытом ключе, но я использую сервер crt для проверки подлинности, которому не назначен закрытый ключ.
Код:
var serverCertificate = new X509Certificate2("ca.crt");
Debug.WriteLine("+++++" + serverCertificate.HasPrivateKey);
var mqttClient = new MqttFactory().CreateMqttClient();
// Create TCP based options using the builder.
var options = new MqttClientOptionsBuilder()
.WithClientId("foo")
.WithTcpServer("192.168.1.126", 8883)
.WithCredentials("myusername", "mypassword")
//.WithTls(true)
.WithTls(true, false, false, serverCertificate.Export(X509ContentType.Cert))
.WithCleanSession()
.WithProtocolVersion(MqttProtocolVersion.V311)
.WithKeepAlivePeriod(TimeSpan.FromSeconds(60))
.WithCommunicationTimeout(TimeSpan.FromSeconds(30))
.Build();
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
var connect = await mqttClient.ConnectAsync(options);
Ошибка

Любая помощь будет оценена, спасибо!
@Cheesebaron Я только что добавил клиентские сертификаты, но M2MQTT не находит закрытый ключ, хотя serverCertificate.HasPrivateKey становится истинным, ConnectAsync его не находит.





Я сохранил свой сертификат в /data/user/0/com.companyname.name/files
используйте эту команду для создания файла pfx
openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx
используйте .pfx вместо .crt
прочтите .pfx из локальных файлов, поскольку byte[] используйте его как сертификат
Вместо этого вам, вероятно, следует сгенерировать сертификат клиента.