sim800如何获得ssl证书?

时间:2016-05-03 05:43:16

标签: ssl https

Sim800支持SSL协议。 AT命令“AT + CIPSSL”将TCP设置为使用SSL功能。 在“sim800_series_ssl_application_note_v1.01.pdf”中注意到:“模块将在TCP连接后自动开始SSL证书”。 我的问题:开始SSL证书的确切含义是什么? sim800究竟做了什么? sim800是否从网站获得SSL证书? sim800在哪里保存SSL证书?

3 个答案:

答案 0 :(得分:2)

据我所知,SIM800中有一些证书,当你使用TCP + SSL或HTTP + SSL连接时,它会自动使用这些证书。

如果这些证书不合适,您将需要使用SD卡,保存所需的证书并使用命令AT + SSLSETCERT设置您保存在SD卡上的证书。 Here您可以找到如何使用文件系统。

通常模块附带的证书就足够了,你不会需要这个。但是,例如,当我尝试通过MQTT与Azure通信时,它们对我无效。我不得不使用wolfSSL库自己加密数据,并使用TCP发送它而不使用SSL。

注意:并非所有SIM800模块都支持SD卡。

答案 1 :(得分:0)

网上有关于sim800和ssl证书的信息非常少,和你一样,我对它有很多疑问。

关于sim800如何获取证书以及保存位置的问题,根据sim800_series_ssl_application_note_v1.01.pdf,您可以创建(定义自己的路径),自行编写和导入ssl证书使用AT + FSCREATE,AT + FSWRITE和AT + SSLSETCERT命令。第3.10段提供了一个例子。

对不起,我无法回答你的其他问题。 无论如何,如果你得到关于sim800和ssl的更多信息,如果你和我分享,我将不胜感激。

答案 2 :(得分:0)

当您使用 AT+CIPSSL 时,您告诉 SIM 模块使用 TCP 的 SSL 连接。当您使用 +CIPSTART 命令时->

  • SIM 模块通过 SSL 请求与服务器的 TCP 连接。
  • 服务器发送服务器 SSL 证书。
  • 使用内部证书颁发机构证书(位于 SIM 模块内部的证书)检查该证书的真实性,该证书与服务器证书加密连接。
  • 如果无法确认证书的真实性,SIM 模块将关闭连接,除非您在 AT+CIPSSL 命令之前使用命令 AT+SSLOPT=0,0(强制 SIM 模块忽略无效的证书验证) .

//密钥交换

  • SIM 模块然后用公钥(已发送的服务器证书的一部分)加密它的主密钥(已经在 SIM 模块内部无法更改或读取)并将其发送回服务器。
  • 服务器然后用 SIM 模块的主密钥加密它的主密钥,并将其发送回 SIM 模块。密钥交换现已完成,因为(服务器和 SIM 模块)都收到了主密钥。

SIM 模块目前不支持客户端身份验证,这意味着服务器无法对客户端进行身份验证。这意味着必须有一些其他的身份验证选项(例如在 MQTT 中,可以是只有客户端知道的用户名和密码)

如果您希望您的模块能够对服务器进行身份验证,您需要为服务器创建自签名证书和证书颁发机构证书(用于 SIM 模块),该证书以加密方式连接到自签名证书并将它们上传到服务器和 SIM 模块(通过来自 SD 卡的 AT+SSLSETCERT 命令)。

如果您只想加密数据流量,您可以忽略无效证书 (AT+SSLOPT=0,0),因为您仍然会收到公钥。但是,如果您想确定服务器的真实性,则需要将正确的证书上传到模块。