SSL in python3 with HTTPServer

I found another (simpler) solution here: http://www.piware.de/2011/01/creating-an-https-server-in-python/

This is my working porting to python3:

from http.server import HTTPServer,SimpleHTTPRequestHandler
from socketserver import BaseServer
import ssl

httpd = HTTPServer(('localhost', 1443), SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket (httpd.socket, certfile='certificate.pem', server_side=True)
httpd.serve_forever()

Since Python 3.7 ssl.wrap_socket is deprecated, use SSLContext.wrap_socket instead:

check: https://docs.python.org/3.7/library/ssl.html#ssl.wrap_socket

and since version 3.10: SSLContext without protocol argument is deprecated.

check: https://docs.python.org/3.10/library/ssl.html#ssl.SSLContext

from http.server import HTTPServer,SimpleHTTPRequestHandler
import ssl

httpd = HTTPServer(('localhost', 1443), SimpleHTTPRequestHandler)
# Since version 3.10: SSLContext without protocol argument is deprecated. 
# sslctx = ssl.SSLContext()
sslctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
sslctx.check_hostname = False # If set to True, only the hostname that matches the certificate will be accepted
sslctx.load_cert_chain(certfile='certificate.pem', keyfile="private.pem")
httpd.socket = sslctx.wrap_socket(httpd.socket, server_side=True)
httpd.serve_forever()