首页 > 解决方案 > X509_check_private_key:key values mismatch error: DPS ,IOT hub

问题描述

我无法在 node.js 的 IOT 集线器上创建设备。我已将配置主机替换为全局设备端点,将 idScope 替换为我的 DPS 的 ID 范围。我正在使用带有 x.509 证书的组注册,因此我使用证书的主题名称作为 registrationId 的值。我还将我的 IoT 中心链接到设备配置服务。

var provisioningHost = "global.azure-devices-provisioning.net"; 
var idScope = "6n*******3"; //Replace id scope with the ID Scope
var **registrationId** = "Azure IoT CA TestOnly Root CA"; 
var deviceCert = {
  cert: fs.readFileSync("./IOTProj_cert.pem").toString(), 
  key: fs.readFileSync("./IOTProj_key.pem").toString()
};

我正在执行 azure-iot-sdk-node/provisioning/device/samples/register_x509.js 文件,但出现以下错误:

PS D:\TestNode\azure-iot-sdk-node-master\provisioning\device\samples> 节点 .\register_x509.js
_tls_common.js:149

错误:错误:0B080074:x509 证书例程:X509_check_private_key:在 Object.buildBuilder(D:\TestNode \azure-iot-sdk-node-master\provisioning\device\samples\node_modules\mqtt\lib\connect\tls.js:17:20) 在 MqttClient.wrapper [as streamBuilder] (D:\TestNode\azure-iot -sdk-node-master\provisioning\device\samples\node_modules\mqtt\lib\connect\index.js:153:36) 在 MqttClient._setupStream (D:\TestNode\azure-iot-sdk-node-master\provisioning \device\samples\node_modules\mqtt\lib\client.js:298:22)
库:'x509 证书例程',函数:'X509_check_private_key',原因:'键值不匹配',代码:'ERR_OSSL_X509_KEY_VALUES_MISMATCH'}

我正在关注以下链接

创建测试证书: 管理示例和教程的测试 CA 证书

create-simulated-device-x509-nodeJS#模拟设备

IoT 中心设备预配服务设备概念#注册 ID

适用于 Node.js 的 Azure IoT 设备预配设备 SDK 示例

编辑-我想使用组注册。

标签: node.jsx509azure-iot-hubazure-iot-dps

解决方案


从上面的代码中,您似乎使用“Azure IoT CA TestOnly Root CA”作为registrationId?registrationId应该是设备证书本身的cn/subject(无论您传递到'./certGen.sh create_device_certificate'命令),而不是根证书 CA。“IOTProj_cert.pem”是什么证书?是设备的证书吗?还是根 CA 证书?


推荐阅读