Using HTTPS adds Transport Layer Security (TLS) to your network traffic. The advantage is an encrypted connection between your device and the server.
from network import WLAN #note that you can also use LTE
import socket
import ssl
import time
wlan = WLAN()
wlan.init(mode=WLAN.STA, ssid='your ssid', auth=(WLAN.WPA2, 'your password'))
print("connecting", end='')
while not wlan.isconnected():
time.sleep(0.25)
print(".", end='')
print("connected")
print(wlan.ifconfig())
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ss = ssl.wrap_socket(s) #adds TLS
ss.connect(socket.getaddrinfo(host, 443)[0][-1])
httpreq = 'GET / HTTP/1.1 \r\nHOST: '+ host + '\r\nConnection: close \r\n\r\n'
ss.send(httpreq)
time.sleep(1)
rec = ss.recv(10000)
print(rec)
Basic connection using ssl.wrap_socket()
.
import socket
import ssl
s = socket.socket()
ss = ssl.wrap_socket(s)
ss.connect(socket.getaddrinfo('www.google.com', 443)[0][-1])
ss.se
Below is an example using certificates with the blynk cloud.
Certificate was downloaded from the blynk examples folder and placed in /flash/cert/
on the device.
import socket
import ssl
s = socket.socket()
ss = ssl.wrap_socket(s, cert_reqs=ssl.CERT_REQUIRED, ca_certs='/flash/cert/ca.pem')
ss.connect(socket.getaddrinfo('cloud.blynk.cc', 8441)[0][-1])
For more info, check the ssl
module in the API reference.