Google cloud platform 无法从远程ibeacon网关设备连接到Google Cloud IoT Core 我试图建立一个针对谷歌云物联网核心的信标网关,但一点运气都没有。

Google cloud platform 无法从远程ibeacon网关设备连接到Google Cloud IoT Core 我试图建立一个针对谷歌云物联网核心的信标网关,但一点运气都没有。,google-cloud-platform,ibeacon,gateway,google-cloud-iot,Google Cloud Platform,Ibeacon,Gateway,Google Cloud Iot,我认为问题在于信标网关不支持JWT auth,因此我正在使用仅关联auth方法设置网关,如上所述。 我知道这是最不安全的方法,但我认为没有办法生成JWT 无论如何,问题是我不知道如何将我的物理设备链接/绑定到注册表云物联网核心的设备 这就是我到目前为止所做的 我创建了发布/订阅主题及其订阅 创建云物联网注册表、网关和设备 将设备绑定到网关 (在这种情况下,设备和注册表位于同一区域) 我读到“为了使网关能够与云IoT核心进行代理设备通信,让网关通过MQTT网桥发布QoS 1/devic

我认为问题在于信标网关不支持JWT auth,因此我正在使用仅关联auth方法设置网关,如上所述。
我知道这是最不安全的方法,但我认为没有办法生成JWT

无论如何,问题是我不知道如何将我的物理设备链接/绑定到注册表云物联网核心的设备

这就是我到目前为止所做的

  • 我创建了发布/订阅主题及其订阅
  • 创建云物联网注册表、网关和设备
  • 将设备绑定到网关
(在这种情况下,设备和注册表位于同一区域)

我读到“为了使网关能够与云IoT核心进行代理设备通信,让网关通过MQTT网桥发布QoS 1/devices/{device_ID_To_attach}/attach控制消息”,但我想我可能错过了一步,因为我不知道如何做到这一点

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

我曾考虑过检查远程设备日志,但这是不可能的,因为我没有操作系统的密钥

此外,我可以在ibeacon网关上设置以下参数:

  • 服务访问:mqtt
  • MQTT类型::SSL
  • MQTT URL:MQTT.googleapis.com:8883
  • 客户端ID:我尝试了几个名称,比如我的谷歌项目、设备名称(相当随机)或设备ID
  • QoS::1
  • 用户名::随机字符串(1)
  • 密码::随机字符串[仅用于JWT身份验证](1)
  • CA:GCP root.pem[来自https://pki.goog/roots.pem ]
  • 客户端证书:rsa_cert.pem(2)
  • 证书密钥:rsa_private.pem(2)
  • 发布主题::发布
(1) 如上所述,
(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密钥,所以情况不同

你知道我留下了什么,或者我做错了什么吗?
非常感谢

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}
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