Google cloud platform 无法从远程ibeacon网关设备连接到Google Cloud IoT Core 我试图建立一个针对谷歌云物联网核心的信标网关,但一点运气都没有。
我认为问题在于信标网关不支持JWT auth,因此我正在使用仅关联auth方法设置网关,如上所述。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 无论如何,问题是我不知道如何将我的物理设备链接/绑定到注册表云物联网核心的设备 这就是我到目前为止所做的
- 我创建了发布/订阅主题及其订阅
- 创建云物联网注册表、网关和设备
- 将设备绑定到网关
我读到“为了使网关能够与云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)
- 发布主题::发布
(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