ESP8266 NodeMCU Lua使用证书建立HTTP安全连接

conn=net.createConnection(net.TCP, 1)
conn:on("receive", function(sck, c) print(c) end )
conn:on("connection", function(conn)
      print("已连接")
conn= net.cert.verify([[
-----BEGIN CERTIFICATE-----
0‚ 0‚‰ 5ÞôÏ0
     *†H†÷
 0N10     UUS10U
Equifax1-0+U$Equifax Secure Certificate Authority0
980822164151Z
180822164151Z0N10  UUS10U
Equifax1-0+U$Equifax Secure Certificate Authority0Ÿ0
    *†H†÷
  0‰ Á]±Xgbî š-m‘h˜
þÚo„b!ÃÑ|Οà¸ðN4ì⊕d¬ñkS_³Ëg€¿BŽþÝ ìá OüûðÝCº[+á€p™W“ñ—j·Âh#ÌMY0¬Q;¯+ÖîcE{ÅÙ_PÒãP:ˆç¿ýàǹ £‚   0‚0pUi0g0e c a¤_0]10  UUS10U
Equifax1-0+U$Equifax Secure Certificate Authority1
0UCRL10U020180822164151Z0U0U#0€Hæhù+Ò²•×GØ# O3˜ŸÔ0UHæhù+Ò²•×GØ# O3˜ŸÔ0U0ÿ0     *†H†ö}A
0V3.0cÀ0
    *†H†÷
  XÎ)êü÷޵ιµ…ѹãà•Ì%1
 ¦’n¶’cžP•ÑšoäÞc…n˜î¨ÿZÈÓU²fqWÞÀ!ë=*§#I†B{üî¢RµggÓ@Û;&X²(w=®waÖú*f'
ú§s\êpñ”!eD_úüï)h©¢‡yïyïO¬w8
-----END CERTIFICATE-----
]])
      conn:send("HEAD / HTTP/1.1\r\n"..
             "Host: google.com\r\n"..
             "Accept: */*\r\n"..
             "User-Agent: Mozilla/4.0 (compatible; esp8266 Lua;)"..
             "\r\n\r\n")
end )
conn:connect(443,"google.com")

我需要使用证书与主机或REST API建立HTTPS安全连接,在成功连接后执行POST、GET、PUT和Delte等操作...... 任何人可以帮我使用证书创建HTTPS安全连接。

点赞
用户131929
用户131929

我不知道你的 net.cert.verify 调用的目的是什么,以及证书来自哪里。在我看来,你只是试图发送一个 HEAD 请求到 https://google.com。如果这个假设是正确的,那么我建议你使用 NodeMCU HTTP 模块,它在 NodeMCU 1.5.1 中可用。

local headers = "Accept: */*\r\n"..
                "User-Agent: Mozilla/4.0 (compatible; esp8266 Lua;)"
http.request("https://google.com", "HEAD", headers, "",
  function(code, data)
    if (code < 0) then
      print("HTTP request failed")
    else
      print(code, data)
    end
  end)

当然,你需要一个启用了 SSL 的固件:http://nodemcu-build.com/

2016-06-29 08:41:43