我的设置如下:
在我的本地环境中,我有一台OPC服务器,该服务器从本地OPC设备读取数据并将其发送到我的本地小服务器,然后再将数据发送到Azure上的IoT-Hub(在那里我将数据保存到cosmosDB)
与Azure looks like this上的IoT-Hub通信的本地小服务器:
var connectionString = '[IoT Hub device connection string]';
// use factory function from AMQP-specific package
var clientFromConnectionString = require('azure-iot-device-amqp').clientFromConnectionString;
// AMQP-specific factory function returns Client object from core package
var client = clientFromConnectionString(connectionString);
// use Message object from core package
var Message = require('azure-iot-device').Message;
var connectCallback = function (err) {
if (err) {
console.error('Could not connect: ' + err);
} else {
console.log('Client connected');
var msg = new Message('some data from my device');
client.sendEvent(msg, function (err) {
if (err) {
console.log(err.toString());
} else {
console.log('Message sent');
};
});
};
};
client.open(connectCallback);
如何确保此通信安全?
答案 0 :(得分:0)
IoT中心要求所有连接都必须通过TLS(请参见IoT Hub MQTT Support)进行保护,并且仅使用安全版本1.2(请参见IoT Hub TLS deprecating 1.0 and 1.1)。
这将确保您的运输安全(默认情况下)。
在生产环境中,我将使用X509证书来保护身份和完整性。 为此,请查看IoT Hub Security x509 Get Started,以了解如何在IoT中心获取和注册证书。看看这个Sample 其中显示了如何在node.js代码中使用X509证书连接到IoT中心。