X509_check_private_key: ошибка несоответствия значений ключей: DPS, IOT hub
Я не могу создавать устройства на концентраторе IOT в node.js. Я заменил хост инициализации на глобальную конечную точку устройства, idScope на ID Scope моего DPS. Я использую групповую регистрацию с сертификатами x.509, поэтому я использую имя субъекта сертификата в качестве значения registrationId. Я также связал свой центр Интернета вещей со службой подготовки устройств.
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> node. \
Register_x509.js_tls_common.js:149
Ошибка: ошибка:0B080074: процедуры сертификата x509:X509_check_private_key: несоответствие значений ключей в Object.createSecureContext (_tls_common.js:149:17) в Object.connect (_tls_wrap.js:1582:48) в Object.buildBuilder (D:\TestNuilder) \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'
}
Я перехожу по ссылкам ниже
Создание тестовых сертификатов: Управление тестовыми сертификатами ЦС для образцов и руководств
create-simulated-device-x509-nodeJS# Имитировать устройство
IoT Hub Device Provisioning Service Основные понятия устройства # Регистрационный идентификатор
Примеры пакета SDK для устройства подготовки устройств Azure IoT для Node.js
РЕДАКТИРОВАТЬ. Я хочу использовать групповую регистрацию.
1 ответ
Из приведенного выше кода похоже, что вы используете "Azure IoT CA TestOnly Root CA" в качестве registrationId? RegistrationId должен быть cn/subject самого сертификата устройства (независимо от того, что вы передали в './certGen.sh create_device_certificate' команда), а не корневого сертификата ЦС. Что за сертификат "IOTProj_cert.pem"? Это сертификат устройства? или сертификат корневого ЦС?