无法从远程ibeacon网关设备连接到Google Cloud IoT Core

问题描述


我正在尝试针对Google Cloud IoT Core设置一个信标网关,一点都没有运气。

我认为问题在于信标网关不支持JWT身份验证,因此我正在使用 仅关联 auth方法设置网关,如{ {3}}。
我知道这是最不安全的方法,但是我看不到生成JWT的方法

无论如何,问题是我不知道如何将物理设备链接/绑定到注册表Cloud IoT Core上的设备。

这是我到目前为止所做的

gcloud pubsub topics create publish 
     --project=${GOOGLE_CLOUD_PROJECT}
gcloud pubsub subscriptions create publish-sub \
     --topic=publish \
     --project=${GOOGLE_CLOUD_PROJECT}
  • 创建了Cloud IoT注册表,网关和设备
gcloud iot registries create eu-registry   \
     --region=${GOOGLE_CLOUD_REGION} \
     --event-notification-config=topic=publish  \
     --project=${GOOGLE_CLOUD_PROJECT}

gcloud iot devices create ${GATEWAY_NAME}   \
     --region=${GOOGLE_CLOUD_REGION} \
     --registry=${REGISTRY_NAME}  \
     --auth-method=association-only   \
     --device-type=gateway \
     --public-key path=/path/to/rsa_cert.pem,type=rsa-x509-pem \
     --project=${GOOGLE_CLOUD_PROJECT}

gcloud iot devices create ${DEVICE_NAME} \
     --region=${GOOGLE_CLOUD_REGION}   \
     --registry=${REGISTRY_NAME}   \
     --device-type=non-gateway   \
     --project=${GOOGLE_CLOUD_PROJECT}
  • 绑定到网关的设备
gcloud iot devices gateways bind \
     --device=${DEVICE_NAME} \
     --device-region=${GOOGLE_CLOUD_REGION} \
     --device-registry=${REGISTRY_NAME} \
     --gateway=${GATEWAY_NAME} \
     --gateway-region=${GOOGLE_CLOUD_REGION} \
     --gateway-registry=${REGISTRY_NAME} \
     --project=${GOOGLE_CLOUD_PROJECT}

在这种情况下,设备和注册表位于同一区域)

我已阅读“为了使网关能够与Cloud IoT Core代理设备通信,请让网关通过MQTT桥发布QoS 1 / devices / {device_ID_to_attach} / attach控制消息。” here,但我想我可能错过了一步,因为我不知道该怎么做。

我也遵循了here指南,并创建了一个额外的网关,也没有运气

我曾考虑过检查远程设备日志,但由于我没有操作系统的键,因此无法实现。

此外,这些是我可以设置的ibeacon网关上的参数:

  • 服务访问权限 :: mqtt
  • MQTT类型 :: SSL
  • MQTT URL :: mqtt.googleapis.com:8883
  • 客户端ID ::我尝试了几个名称,例如我的Google项目,设备名称(相当随机)或设备ID
  • QoS :: 1
  • 用户名 ::随机字符串(1)
  • 密码 ::随机字符串[仅适用于JWT身份验证](1)
  • CA :: GCP roots.pem [来自https://pki.goog/roots.pem]
  • 客户证书 :: rsa_cert.pem(2)
  • 证书密钥 :: rsa_private.pem(2)
  • 发布主题 ::发布

(1)如thishere
(2)自动生成

openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
openssl req -x509 -nodes -newkey rsa:2048 -keyout rsa_private.pem -days 10000 -out rsa_cert.pem -subj "/CN=unused

我不得不说,此配置可与使用发送数据的软件网关设备一起使用,因为该软件远程网关会生成JWT密钥,所以情况不尽相同。

任何关于我留下的东西或我在做什么错的想法?​​
非常感谢!!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)