bidirectional SSL authentication
tangqiwen opened this issue · 0 comments
tangqiwen commented
I have implemented bidirectional SSL authentication in java. When implementing bidirectional SSL authentication in java, it needs one more file (ca. crt, client. crt, client. key)
I want to use m2mqtt to implement two-way SSL authentication. But the following code doesn't work.
The following code uses only two files. How can I implement bidirectional SSL authentication?
Thank you!!
static void testTwo() {
string content = "hello mqtt";
string topic = "test/test";
X509Certificate caCert = new X509Certificate(@"D:\develop\mqtt\cafiles\test\my-ca.crt");
X509Certificate clientCert = new X509Certificate(@"D:\develop\mqtt\cafiles\test\wantech.crt");
string brokerHostName = "iot.xxxx.com";
int brokerPort = 3883;
string clientId = Guid.NewGuid().ToString();
byte[] qosLevels = { MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE };
try
{
//单向SSL通信
MqttClient client = new MqttClient(brokerHostName, brokerPort, true, caCert, clientCert, MqttSslProtocols.TLSv1_2, new RemoteCertificateValidationCallback(cafileValidCallback));
//消息接受
client.MqttMsgPublishReceived += new MqttClient.MqttMsgPublishEventHandler(messageReceive);
//连接Broker
client.Connect(clientId, "test", "123456");
string strValue = Convert.ToString(content);
client.Publish(topic, Encoding.UTF8.GetBytes(strValue), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
}
catch (System.Exception)
{
Console.WriteLine("连接失败!");
Console.ReadKey();
}
}