【发布时间】:2019-08-30 17:33:07
【问题描述】:
我正在研究如何将 MQTT 用于谷歌云。我已经提到,我没有找到关于 AT 命令和 Google Cloud MQTT 的具体文档
我正在使用 Simcom 7600 模块
文档说它要求这样做:
+CSSLCFG: "sslversion",(0-9),(0-4)
+CSSLCFG: "authmode",(0-9),(0-3)
+CSSLCFG: "ignorelocaltime",(0-9),(0,1)
+CSSLCFG: "negotiatetime",(0-9),(10-300)
+CSSLCFG: "cacert",(0-9),(5-128)
+CSSLCFG: "clientcert",(0-9),(5-128)
+CSSLCFG: "clientkey",(0-9),(5-128)
ca certs generation Google cloud
所以我生成了 RSA 密钥:
openssl genpkey -algorithm RSA -out rsa_private.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
#X.509 certificate for iot device in Google Cloud
openssl req -x509 -nodes -newkey rsa:2048 -keyout rsa_private.pem \
-out rsa_cert.pem -subj "/CN=unused"
之后,我想根据 musquito 设置和这个 python 示例 MQTT SIMCOM 7000 example 使用以下命令上传证书:
MQTT_URL = "mqtt.googleapis.com"
CERTS_FOLDER = 'certs'
CA_NAME = 'rsa_cert.pem' # cacert 'mosquitto-ca.crt'
CERT_NAME = 'rsa_private.pem' # clientcert "mosquitto.crt"
KEY_NAME = 'client.key' # client key "mosquitto.key"
我将示例修改为模块的波特率和正确的端口。我已经用它来打电话和发短信了,所以我知道它可以工作。
AT('+CFSINIT')
with open(os.path.join(CERTS_FOLDER, CA_NAME),'rb') as f:
data = f.read()
AT('+CFSWFILE=3,"{}",0,{},5000'.format(CA_NAME, len(data)), success="DOWNLOAD")
send(data)
with open(os.path.join(CERTS_FOLDER, CERT_NAME),'rb') as f:
data = f.read()
AT('+CFSWFILE=3,"{}",0,{},5000'.format(CERT_NAME, len(data)), success="DOWNLOAD")
send(data)
with open(os.path.join(CERTS_FOLDER, KEY_NAME),'rb') as f:
data = f.read()
AT('+CFSWFILE=3,"{}",0,{},5000'.format(KEY_NAME, len(data)), success="DOWNLOAD")
send(data)
AT('+CFSTERM')
我得到的回复是:ERROR 可悲的是所有证书。这部分的帮助会很好:) 提前致谢。
【问题讨论】:
-
通过运行
AT+CMEE=2,您可能会获得比ERROR更多的详细信息。
标签: google-cloud-platform mqtt iot x509certificate at-command