Как правильно создать подписанные сертификаты для реестра и устройства в Google IoT?

У меня есть проект на базе Google Cloud Platform, который включает добавление устройств Raspberry Pi в реестр Google IoT. Что мне нужно сделать, так это сгенерировать подписанные сертификаты как для реестра, так и для устройств, чтобы гарантировать, что мошеннические устройства не будут зарегистрированы.

Я уже пробовал сгенерировать подписанные сертификаты X.509 следующим образом:

   openssl req -new -x509 -nodes -days 365 -newkey rsa:2048 -keyout ca.key -out ca.crt
   openssl genrsa -out device.key 2048
   openssl req -new -days 365 -key device.key -out device.csr 
   openssl x509 -req -days 365 -in device.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out device.crt

Обратите внимание, что при появлении запроса я ввожу дополнительную информацию subj, например имя, страну, адрес электронной почты, организацию, которая согласно другой вопрос SO должен заставить его работать.

После вызова этих команд я получаю следующие файлы:

ca.crt     ca.key     ca.srl     device.crt device.csr device.key

Итак, я бы добавил ca.crt в качестве сертификата реестра, а затем, когда я пытался загрузить device.crt в качестве устройства сертификат (тип RS256_X509) Я получаю сообщение об ошибке Certificate is not supported by Cloud IoT

Что я делаю не так? Я хочу убедиться, что создаю правильные сертификаты и привязываю их к реестру и устройству.


person UO Man    schedule 28.03.2019    source источник
comment
Взгляните на эту статью, которую я написал. Он должен был использовать устройства Onion Omega, но принципы должны быть такими же для вашего Pi. medium.com/google-cloud/   -  person DazWilkin    schedule 29.03.2019
comment
Я не могу зарегистрировать устройство с информацией о subj по умолчанию, но с Common Name, установленным на неиспользуемое при запуске openssl req -new -days 365 -key device.key -out device.csr и оставив все остальное по умолчанию, я смог зарегистрировать устройство с вашими точно такими же командами. Не могли бы вы предоставить дополнительную информацию о том, какую дополнительную информацию о Subj вы использовали?   -  person Alex Hong    schedule 30.03.2019