Я пытаюсь зарегистрировать устройство IoT в Google Cloud IoT Core, и у меня возникают проблемы при подписании открытого ключа устройства с помощью сертификата CA, установленного в Google Cloud (реестр устройства).
Ниже приведеныТребования Google:
- CA и сертификаты устройства должны быть X.509v3, закодированы в base64, завернуты в ----- BEGIN CERTIFICATE ----- и ----- END CERTIFICATE-----.
- Сертификаты CA не должны быть самоподписанными («корневой CA»);сертификат устройства должен быть подписан конкретным сертификатом CA на уровне реестра.
- Открытые ключи устройства, которые не подписаны сертификатами уровня реестра, отклоняются Cloud IoT Core.
- CA и устройствосертификаты должны быть в формате PEM
После прохождения предыдущих ответов в StackOverflow и в других местах, это то, что я пробовал до сих пор (используя файл конфигурации по умолчанию):
Вариант 1
- openssl req -x509 -nodes -newkey rsa: 2048 -days 365 -keyout ca.key -out ca.crt -subj "/ CN = не используется"
- openssl req -nodes-newkey rsa: 2048 -days 365 -keyout device.key -out device.csr -subj "/ CN = не используется"
- openssl x509 -req -days 365 -in device.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out device.crt
Опция 2
- openssl req -new -x509 -nodes -days 365 -newkey rsa: 2048 -keyout ca.key -out ca.crt -subj "/ CN = не используется"
- openssl genrsa -out device.key 2048
- openssl req -new -days 365 -key device.key -out device.csr -subj "/ CN = не используется"
- openssl x509 -req -days 365 -in device.csr -CA ca.crt -CAkey ca.key-CAcreateserial -out device.crt
Сертификаты создаются отлично в обоих случаях, но когда я пытаюсь зарегистрировать устройство с этим сертификатом, я получаю сообщение об ошибке, указывающее, что сертификат устройства не может бытьпроверено сертификатом CA.
Что я делаю не так при подписании сертификата устройства?Вы можете игнорировать конфигурацию Cloud IoT, поскольку я убедился, что она работает (без сертификата CA).
Большое спасибо!