Я пытаюсь решить эту проблему уже несколько дней и не могу найти решение относительно приведенной ниже ошибки: цепочка сертификатов недействительна. У меня есть родительский сертификат, полученный из хранилища, с помощью которого я создаю и подписываю дочерний сертификат, а затем пытаюсь зарегистрировать устройство с помощью клиента подготовки устройств. Пока устройство пытается зарегистрироваться, появляется следующая ошибка. Я точно не уверен, в чем я ошибаюсь, поскольку шаги по созданию и подписанию дочернего сертификата выглядят абсолютно правильно.
Caused by: java.security.KeyStoreException: Certificate chain is not valid
at java.base/sun.security.pkcs12.PKCS12KeyStore.setKeyEntry(PKCS12KeyStore.java:650)
at java.base/sun.security.pkcs12.PKCS12KeyStore.engineSetKeyEntry(PKCS12KeyStore.java:593)
at java.base/sun.security.util.KeyStoreDelegator.engineSetKeyEntry(KeyStoreDelegator.java:114)
at java.base/java.security.KeyStore.setKeyEntry(KeyStore.java:1192)
at com.microsoft.azure.sdk.iot.provisioning.security.SecurityProviderX509.generateSSLContext(SecurityProviderX509.java:73)
at com.microsoft.azure.sdk.iot.provisioning.security.SecurityProviderX509.getSSLContext(SecurityProviderX509.java:40)
Вот пример фрагмента кода.
generateSelfSignedX509Certificate предназначен для подписания и создания дочернего сертификата. Тип параметра KeyPair SigningCertKeyPair представляет собой комбинацию родительского закрытого ключа и открытого ключа для дочернего элемента, созданного как новая KeyPair. Итак, SigningCertKeyPair = ParentPrivateKey + childPublicKey. Родительский закрытый ключ используется для подписи нового сгенерированного дочернего сертификата x509.
var childCertificate = generateSelfSignedX509Certificate(signingCertKeyPair, certificateRequest.getDeviceId,
parentCertPolicy.getProperties().getNotBefore(), parentCertPolicy.getProperties().getExpiresOn());
Collection signerCertificates = new LinkedList();
byte[] certificateContent = parentCertPolicy.getCer();
String parentCertificate = Base64.getEncoder().encodeToString(certificateContent);
signerCertificates.add(parsingOfPublicKeyCertificate(parentCertificate));
var securityProvider = SecurityProviderX509.newBuilder()
.withChildCert(childCertificate)
.withSignerCertificates(signerCertificates)
.withSignerCommonName(certificateRequest.deviceId)
.withPrivateKey(signingCertKeyPair.getPrivate())
.build();
var provisioningDeviceClient = ProvisioningDeviceClient.create(dpsCertConfig.globalEndpoint(), dpsCertConfig.idScope(), PROTOCOL, securityProvider);
provisioningDeviceClient.registerDeviceSync();//This line is throwing certificate invalid exception
provisioningDeviceClient.close();
Подробнее здесь: https://stackoverflow.com/questions/790 ... device-dps
Цепочка сертификатов недействительна при попытке зарегистрировать устройство (DPS) ⇐ JAVA
Программисты JAVA общаются здесь
1728566190
Anonymous
Я пытаюсь решить эту проблему уже несколько дней и не могу найти решение относительно приведенной ниже ошибки: цепочка сертификатов недействительна. У меня есть родительский сертификат, полученный из хранилища, с помощью которого я создаю и подписываю дочерний сертификат, а затем пытаюсь зарегистрировать устройство с помощью клиента подготовки устройств. Пока устройство пытается зарегистрироваться, появляется следующая ошибка. Я точно не уверен, в чем я ошибаюсь, поскольку шаги по созданию и подписанию дочернего сертификата выглядят абсолютно правильно.
Caused by: java.security.KeyStoreException: Certificate chain is not valid
at java.base/sun.security.pkcs12.PKCS12KeyStore.setKeyEntry(PKCS12KeyStore.java:650)
at java.base/sun.security.pkcs12.PKCS12KeyStore.engineSetKeyEntry(PKCS12KeyStore.java:593)
at java.base/sun.security.util.KeyStoreDelegator.engineSetKeyEntry(KeyStoreDelegator.java:114)
at java.base/java.security.KeyStore.setKeyEntry(KeyStore.java:1192)
at com.microsoft.azure.sdk.iot.provisioning.security.SecurityProviderX509.generateSSLContext(SecurityProviderX509.java:73)
at com.microsoft.azure.sdk.iot.provisioning.security.SecurityProviderX509.getSSLContext(SecurityProviderX509.java:40)
Вот пример фрагмента кода.
generateSelfSignedX509Certificate предназначен для подписания и создания дочернего сертификата. Тип параметра KeyPair SigningCertKeyPair представляет собой комбинацию родительского закрытого ключа и открытого ключа для дочернего элемента, созданного как новая KeyPair. Итак, SigningCertKeyPair = ParentPrivateKey + childPublicKey. Родительский закрытый ключ используется для подписи нового сгенерированного дочернего сертификата x509.
var childCertificate = generateSelfSignedX509Certificate(signingCertKeyPair, certificateRequest.getDeviceId,
parentCertPolicy.getProperties().getNotBefore(), parentCertPolicy.getProperties().getExpiresOn());
Collection signerCertificates = new LinkedList();
byte[] certificateContent = parentCertPolicy.getCer();
String parentCertificate = Base64.getEncoder().encodeToString(certificateContent);
signerCertificates.add(parsingOfPublicKeyCertificate(parentCertificate));
var securityProvider = SecurityProviderX509.newBuilder()
.withChildCert(childCertificate)
.withSignerCertificates(signerCertificates)
.withSignerCommonName(certificateRequest.deviceId)
.withPrivateKey(signingCertKeyPair.getPrivate())
.build();
var provisioningDeviceClient = ProvisioningDeviceClient.create(dpsCertConfig.globalEndpoint(), dpsCertConfig.idScope(), PROTOCOL, securityProvider);
provisioningDeviceClient.registerDeviceSync();//This line is throwing certificate invalid exception
provisioningDeviceClient.close();
Подробнее здесь: [url]https://stackoverflow.com/questions/79040687/certificate-chain-invalid-when-trying-to-register-device-dps[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия