HTTPS

Using HTTPS adds Transport Layer Security (TLS) to your network traffic. The advantage is an encrypted connection between your device and the server.

Basic example

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.