#google-cloud-iot
#google-cloud-iot
Вопрос:
Меня смущает сертификат, связанный с ядром Google Cloud iot. какой сертификат CA используется на уровне реестра и как его сгенерировать. И сертификат «roots.pem», используемый для связи между устройством и облачным ядром интернета вещей с использованием моста mqtt, который я получил по этой ссылке ‘https://pki.google.com/roots.pem «. Отличается ли он от того, который связан с сертификатом уровня реестра?
Я попытался добавить сертификат roots.pem, но он выдает ошибку, что файл слишком большой. Я также добавил открытый ключ, который используется для аутентификации устройства с использованием пары открытых / закрытых ключей. он был добавлен успешно. но я запутался, какой из них использовать, где использовать и как его создать.
Как проверить устройство с помощью сертификатов CA уровня реестра для большей безопасности?
Я использую следующую команду,
для получения сертификата roots.pem ‘https://pki.google.com/roots.pem ‘
для получения пары открытых / закрытых ключей
openssl req -x509 -nodes -newkey rsa:2048 -keyout rsa_private.pem -days 1000000 -out rsa_cert.pem -subj "/CN=unused"
Ответ №1:
Я надеюсь, что смогу помочь ответить на ваш вопрос. Одна вещь, которая всплывает, — это использование вами Google roots.pem. Я не уверен, что это за файл, но он мне не нужен для проверки моих клиентов GCP IoT. Я использую команду openssl, почти идентичную вашей (я просто не использовал параметр «-days:», но, возможно, мне следует!), Затем на веб-странице консоли GCP для устройства я использую «Добавить открытый ключ», чтобы вручную скопировать / вставить содержимое сгенерированного общедоступногоключевой файл (например: «rsa_cert.pem»). Наконец, я использую сгенерированный файл закрытого ключа (например, «rsa_private.pem») в своем коде для подписи JWT.
Помогает ли это? Я не «эксперт», но я довольно регулярно работаю с этим материалом в течение пары месяцев.
-C
Ответ №2:
Я лично использую python для подключения своего устройства, и строка кода выглядит следующим образом:
self.Mqttclient = self.get_client(
self.projectId, cloud_region, self.registryId, self.deviceId,
self.credential, algorithm, root_certificate,
mqtt_hostname, mqtt_port)
итак, да, я создал root.pem точно так же, как вы, и создал общедоступный и закрытый файл с помощью скрипта python, который в основном является тем же, что вы делаете с openssl в командной строке.
Вы можете посмотреть здесь для получения дополнительной информации о сертификатах.
Комментарии:
1. Просто используйте openssl:
openssl genrsa -des3 -out rootCA.key 4096
а затемopenssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out root.pem
я просто попытался сгенерировать rpi и работает…