我成功地将我的ESP32连接到WebSocket服务器。现在我正在尝试使用SSL。我试着用这个简单的代码连接到www.google.com。我用这个来生成证书和密钥。在openssl req -newkey rsa:2048 -nodes -keyout client.key -x509 -days 365 -out client.crt
.
然后用adafruit ampy复制密钥和证书文件。别忘了换一下你的串行口。在
^{pr2}$
这是ESP32的密码import ussl
import usocket
import networking
KEY_PATH = "client.key"
CERT_PATH = "client.crt"
HOST, PATH, PORT = "www.google.com", "/" 443
with open(KEY_PATH, 'rb') as f:
key1 = f.read()
with open(CERT_PATH, 'rb') as f:
cert1 = f.read()
s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
addr = usocket.getaddrinfo(HOST, PORT)[0][-1]
s.connect(addr)
sock = ussl.wrap_socket(s, key = key1, cert = cert1)
sock.write(bytes('GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n' % (PATH, HOST), 'utf8'))
print(sock.read(100))
我得到这个错误:mbedtls_ssl_handshake error: -7280
Traceback (most recent call last):
File "", line 1, in
OSError: [Errno 5] EIO
是否有人成功地在ESP32上使用了ssl socket_-wrap?在
编辑(23.12.2018):
我终于找到了一些有用的东西,通过HTTPS从google获取HTML。检查上面的代码。希望这有帮助。我认为用于ESP32的micropython端口已经变得更好了,这就是它现在起作用的原因。在
下一步是让SSL WebSocket工作。。。在
编辑(09.06.2019):