Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接问题iot aws mqttclient.net c#_C#_Amazon Web Services_Iot - Fatal编程技术网

连接问题iot aws mqttclient.net c#

连接问题iot aws mqttclient.net c#,c#,amazon-web-services,iot,C#,Amazon Web Services,Iot,我与客户的连接有问题。我尝试通过以下方式连接到我的物联网设备: var caCert = X509Certificate.CreateFromCertFile(@"C:\DiscoD\MqttRuleDefault\root.crt"); var clientCert = new X509Certificate2(@"C:\DiscoD\MqttRuleDefault\xxxx-certificate.crt"); string path = @&quo

我与客户的连接有问题。我尝试通过以下方式连接到我的物联网设备:

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);
var caCert=X509Certificate.CreateFromCertFile(@“C:\discd\MqttRuleDefault\root.crt”);
var clientCert=new X509Certificate2(@“C:\discd\MqttRuleDefault\xxxx certificate.crt”);
字符串路径=@“C:\discd\MqttRuleDefault\xxxxx-private.pem.key”;
string privateKey=this.GetStringFromFile(路径);
字节[]keyBuffer=Helpers.GetBytesFromPEM(privateKey,PemStringType.RsaPrivateKey);
RSACryptoServiceProvider prov=加密解码RsaPrivateKey(keyBuffer);
clientCert.PrivateKey=prov;
Console.WriteLine(clientCert.HasPrivateKey);
Console.WriteLine(客户端证书颁发者);
Console.WriteLine(clientCert.Verify());
RemoteCertificateValidationCallback cb=新的RemoteCertificateValidationCallback(Pippo);
LocalCertificateSelectionCallback lcb=新的LocalCertificateSelectionCallback(Pippo1);
var client=新的MqttClient(“yyyy-ats.iot.us-west-2.amazonaws.com”
,443
是的
,卡塞特
,客户证书
,MqttSslProtocols.TLSv1_2
,cb
,lcb
,新列表(){“x-amzn-mqtt-ca”});
字符串clientId=Guid.NewGuid().ToString();
client.ConnectionClosed+=client\u ConnectionClosed;
client.MqttMsgPublished+=客户端_MqttMsgPublished;
client.mqttmsgpublisherceived+=客户机\u mqttmsgpublisherceived;
client.MqttMsgSubscribed+=client_MqttMsgSubscribed;
client.MqttMsgUnsubscribed+=client_MqttMsgUnsubscribed;
client.Connect(clientId);
但康纳斯的消息并没有到达。
奇怪的是,具有相同字段的Python脚本设置正确连接,awsIotClient也正确连接。

我想解决的问题是,使用私钥将客户端证书导出到pfx,然后连接到8883端口