未授权连接(5) - MQTT谷歌云物联网

时间:2017-10-12 11:40:32

标签: java google-cloud-platform mqtt

我尝试连接到Google云IOT MQTT Brocker。我正在未授权连接(5)作为Java客户端中的异常。

device_id和其他详细信息正确。在云中为设备设置的公钥。

使用以下repo的示例代码。 https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/iot/api-client/mqtt_example

2 个答案:

答案 0 :(得分:1)

另一个需要关注的是配置的GCP IoT核心云区域。

有类似的问题。我将GCP IoT核心云区域配置为“asia-east1”,而在客户端应用程序端,其默认云区域为“us-central1”。

如果未正确配置云区域,则python / NodeJS IoT核心示例(mqtt,http,end2end)将返回错误,例如

Creating JWT using RS256 from private key file rsa_private.pem
Publishing message 1/100: 'test/test_1-payload-1'
('on_connect', 'Connection Refused: not authorised.')
('on_disconnect', '5: The connection was refused.')

要解决此问题,只需将正确的云区域参数传递给命令--cloud_region=asia-east1

即可

示例:

python cloudiot_mqtt_example.py --project_id=project_id --registry_id=registry_id --device_id=device_id --private_key_file=rsa_private.pem --algorithm=RS256 --cloud_region=asia-east1

答案 1 :(得分:0)

要检查的事情:

1)您确定SSL密钥的格式与您注册的格式相符吗? RS256与RS256与X509等?

2)您是否在mqtt客户端上设置了TLS并获取了Google根证书?

2a)> = TLS 1.2?

3)确认JWT具有正确的' aud' value(project-id,而不是project-name),它是否有正确的问题和到期时间?