Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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
Node.js 使用pem证书向远程代理发送消息_Node.js_Ssl_Mqtt_Mosquitto_Pem - Fatal编程技术网

Node.js 使用pem证书向远程代理发送消息

Node.js 使用pem证书向远程代理发送消息,node.js,ssl,mqtt,mosquitto,pem,Node.js,Ssl,Mqtt,Mosquitto,Pem,我正在编写一个脚本,使用MQTT获取一些传感器数据,转换传入值是一种特定的方式,并将其转发到使用加密通信的云。 该脚本在RaspberryPi 3 Raspbian上运行,其中MOSQUITO作为MQTT代理运行。传感器将数据发送到此代理 到目前为止,我从传感器中获得了信息,我可以根据需要转换内容 问题是,当我尝试连接到远程代理时,我收到以下错误消息 Error: error:0906D06C:PEM routines:PEM_read_bio:no start line at Error (n

我正在编写一个脚本,使用MQTT获取一些传感器数据,转换传入值是一种特定的方式,并将其转发到使用加密通信的云。 该脚本在RaspberryPi 3 Raspbian上运行,其中MOSQUITO作为MQTT代理运行。传感器将数据发送到此代理

到目前为止,我从传感器中获得了信息,我可以根据需要转换内容

问题是,当我尝试连接到远程代理时,我收到以下错误消息

Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
at Error (native)
at Object.createSecureContext (_tls_common.js:67:17)
at Object.TLSSocket._init.ssl.onclienthello.ssl.oncertcb.exports.connect (_tls_wrap.js:1015:46)
at Object.buildBuilder (/home/pi/node_modules/mqtt/lib/connect/tls.js:13:20)
at MqttClient.wrapper [as streamBuilder] (/home/pi/node_modules/mqtt/lib/connect/index.js:135:36)
at MqttClient._setupStream (/home/pi/node_modules/mqtt/lib/client.js:246:22)
at new MqttClient (/home/pi/node_modules/mqtt/lib/client.js:227:8)
at Object.connect (/home/pi/node_modules/mqtt/lib/connect/index.js:138:10)
at Object.<anonymous> (/home/pi/GATT_server/MQTT_module.js:3:25)
证书的条目不应是证书文件的路径,而应是其自身的实际证书。你需要读入文件并传递它

像这样的事情:

var remoteBroker = mqtt.connect('mqtts://xxx.xxx.io', 
    {port:8883,
    protocol: 'ssl', 
    username: 'username', 
    password: '123password123', 
    cert: fs.readFileSync('/etc/mosquitto/certs/ca.pem')} );

非常感谢你。现在可以了。现在我看到了解决方案,原因很清楚哈哈:再次谢谢你