我在SIM800L中使用SSL证书锁定时遇到问题。我可以使用AT+HTTPSSL=0和AT+HTTPSSL=1成功发出GET请求,但是模块不会检查提供的服务器证书是否有效。根据this thread的说法,我已经将证书上传到模块的文件系统。我可以使用AT命令成功设置证书:
AT+SSLSETCERT=cert.cer
AT+SSLSETCERT=cert.cer
OK
+SSLSETCERT: 0然而,这样做似乎不会阻止其他证书的使用,例如,我已经尝试使用google.com和mywebsite.com (我已经为它们导入了证书)。因此,我更深入地研究了一下,找到了SSLOPT命令,根据SSL docs的说法,它应该会阻止无效证书。使用AT+SSLOPT=0,0设置标志,然后执行HTTPS请求会得到一个605错误:
+HTTPACTION: 0,605,0文档显示这意味着"SSL无法建立通道“。我对此的理解是,服务器提供了一个无效的证书(因此,与AT+SSLSETCERT加载的证书不同)。如果我理解正确的话,我会预料到在请求google.com或selfsigned.badssl.com时会出现这个错误。问题是,即使我向mywebsite.com发出请求,也会得到这个结果,为此,我将证书加载到了存储区中。
我用两个不同的模块(SIM800L和SIM808)尝试了类似的过程,得到了类似的结果。我做错了什么吗?
以下是命令的完整列表以及它们对mywebsite.com请求的响应:
AT+CREG?
+CREG: 0,5
OK
AT+SAPBR=1,1
AT+SAPBR=1,1
OK
AT+HTTPINIT
AT+HTTPINIT
OK
AT+HTTPPARA="URL","mywebsite.com"
AT+HTTPPARA="URL","mywebsite.com"
OK
AT+HTTPPARA="CID",1
AT+HTTPPARA="CID",1
OK
AT+HTTPSSL=1
AT+HTTPSSL=1
OK
AT+SSLSETCERT=cert.cer
AT+SSLSETCERT=cert.cer
OK
+SSLSETCERT: 0
AT+SSLOPT=0,0
AT+SSLOPT=0,0
OK
AT+HTTPACTION=0
AT+HTTPACTION=0
OK
AT+HTTPREAD
AT+HTTPREAD
OK
+HTTPACTION: 0,605,0 <<<-------This shouldn't be 605
AT+HTTPTERM
AT+HTTPTERM
OK
AT+SAPBR=0,1
AT+SAPBR=0,1
OK发布于 2020-06-22 21:20:08
这个问题也困扰了我很长一段时间。解决方案如下所示-- https端口应该在站点地址中指定。事实并非如此:
AT + HTTPPARA = "URL", "mywebsite.com"因此:
AT + HTTPPARA = "URL", "mywebsite.com:443"发布于 2020-10-30 01:14:57
我找到了simcom关于ssl here的文档,我在里面看到了一个例子。
使用HTTPS的4.5HTTPS Get方法
// Use HTTPS download data
AT+HTTPINIT
OK
//Init HTTP service
AT+HTTPPARA="CID",1
OK
AT+HTTPPARA="URL","www.gmail.com" OK
AT+HTTPPARA="REDIR",1
OK
//Set parameters for HTTP session
AT+HTTPSSL=1
OK
//Enable HTTPS function
AT+HTTPACTION=0
OK
+HTTPACTION: 0,200,84200
//GET session start
//GET successfully
AT+HTTPREAD
+HTTPREAD: 84200 …. OK
//Read the data of HTTP server
AT+HTTPTERM
OKhttps://stackoverflow.com/questions/60779292
复制相似问题