Problemi connessione iot aws

di il
3 risposte

Problemi connessione iot aws

Salve

Ho un problema di connessione con il mio client M2Mqtt. Ho provato a connettermi alla mia iot things in questo modo:


var caCert = X509Certificate.CreateFromCertFile(@"C:\DiscoD\MqttRuleDefault\root.crt");


var clientCert = new X509Certificate2(@"C:\DiscoD\MqttRuleDefault\xxxx-certificate.crt");


string path = @"C:\DiscoD\MqttRuleDefault\xxxxx-private.pem.key";
string privateKey = this.GetStringFromFile(path);
byte[] keyBuffer = Helpers.GetBytesFromPEM(privateKey, PemStringType.RsaPrivateKey);


RSACryptoServiceProvider prov = Crypto.DecodeRsaPrivateKey(keyBuffer);
clientCert.PrivateKey = prov;

Console.WriteLine(clientCert.HasPrivateKey);

Console.WriteLine(clientCert.Issuer);
Console.WriteLine(clientCert.Verify());

RemoteCertificateValidationCallback cb = new RemoteCertificateValidationCallback(Pippo);
LocalCertificateSelectionCallback lcb = new LocalCertificateSelectionCallback(Pippo1);

var client = new MqttClient("yyyyy-ats.iot.us-west-2.amazonaws.com", 443, true, caCert, clientCert, MqttSslProtocols.TLSv1_2, cb, lcb, new List<string>() { "x-amzn-mqtt-ca" });


string clientId = Guid.NewGuid().ToString();


client.ConnectionClosed += Client_ConnectionClosed;
client.MqttMsgPublished += Client_MqttMsgPublished;
client.MqttMsgPublishReceived += Client_MqttMsgPublishReceived;
client.MqttMsgSubscribed += Client_MqttMsgSubscribed;
client.MqttMsgUnsubscribed += Client_MqttMsgUnsubscribed;


client.Connect(clientId);

Ma il messaggio di Connax non arriva. la cosa strana è che con uno script pyton popolato con gli stessi campi mi connetto, e lo stesso con l'sdk di awsIotClient

Potreste aiutarmi.
Grazie mille

3 Risposte

  • Re: Problemi connessione iot aws

    Hai provato a mettere un breakpoint in ogni gestore evento?
  • Re: Problemi connessione iot aws

    Si,
    Gli unici metodi in cui entra sono quelli delle callback.
    Ho csaricato anche i sorgenti della dll M2Mqtt ed in sostanza dà eccezione perchè dopo aver riconosciuto correttamente il socket di connessione non riceve la risposta di Connack. La differenze con lo script PAHO che ho è che lì si identifica anche il nome del protocollo x-amzn-mqtt-ca, quindi ho provato ad eseguire una applicazione .netcore con l'altra dll m2mqtt che prevede un costruttore per la specifica del nome di protococollo alpn aggiungendo la stringa x-amzn-mqtt-ca. Ma anche in questo caso succede la stessa cosa.
  • Re: Problemi connessione iot aws

    Credo do aver risolto, per lo meno adesso si connette alla porta 8883 con il certificato client esportato in pfx insieme alla chiave privata
Devi accedere o registrarti per scrivere nel forum
3 risposte