Python introduces tornado using ssl

Don't talk nonsense, just start working!
The following are the requirements of netizens!

Install tornado

pip install tornado

Features

1. Lightweight web framework
2. Asynchronous non-blocking IO processing method
3. Excellent anti-load ability
4. Excellent processing performance, does not rely on multi-process/multi-thread, solves C10K problem to a certain extent
5. WSGI full stack alternative product , It is recommended to use its web framework and HTTP server at the same time

Code!

Public certificate server.crt

-----BEGIN CERTIFICATE-----
MIIFpjCCBI6gAwIBAgIQC2XCDsMH3j8IDaAq44wc/zANBgkqhkiG9w0BAQsFADBy
MQswCQYDVQQGEwJDTjElMCMGA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywg
SW5jLjEdMBsGA1UECxMURG9tYWluIFZhbGlkYXRlZCBTU0wxHTAbBgNVBAMTFFRy
dXN0QXNpYSBUTFMgUlNBIENBMB4XDTIwMDgwNTAwMDAwMFoXDTIxMDgwNTEyMDAw
MFowHjEcMBoGA1UEAxMTamRvbmcueHVleHVlYmFuZy5jbjCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAK7KfqfGR6AW4GvWLH1EqyRKfnuKug+ZlRJTrVBg
crY0mNSNmljwA0S/JZb+dzM4Xs6zIVUrk8nqrcmidWPzUggDGelOdF11OZh94Ibt
kh+lT2J5ZYsJ4J6MSJ4bVEo8cKAcBcbWRnaTPjYT5xhyQTWxjRfjHkMk7spc+DJL
TJAf4m07DUZzZqR9dAzKhAxfLS4Hk3Ita3GOiWb4L7BOfwuIV/RILsKMWqiJvkJS
hFIf+y1YjPJzLQdXmyACb5iIpBkaa+Rya9dc+f39Nnddk1m+fYGE8OBkdEnapH7b
gbIzDX1ufleVsTV86MAvg9fPb1oBUndYM1jppldkZICN4O0CAwEAAaOCAoowggKG
MB8GA1UdIwQYMBaAFH/TmfOgRw4xAFZWIo63zJ7dygGKMB0GA1UdDgQWBBSb1gMi
x3SpsPWgor8sAu7rycykqzAeBgNVHREEFzAVghNqZG9uZy54dWV4dWViYW5nLmNu
MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
TAYDVR0gBEUwQzA3BglghkgBhv1sAQIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93
d3cuZGlnaWNlcnQuY29tL0NQUzAIBgZngQwBAgEwgZIGCCsGAQUFBwEBBIGFMIGC
MDQGCCsGAQUFBzABhihodHRwOi8vc3RhdHVzZS5kaWdpdGFsY2VydHZhbGlkYXRp
b24uY29tMEoGCCsGAQUFBzAChj5odHRwOi8vY2FjZXJ0cy5kaWdpdGFsY2VydHZh
bGlkYXRpb24uY29tL1RydXN0QXNpYVRMU1JTQUNBLmNydDAJBgNVHRMEAjAAMIIB
BQYKKwYBBAHWeQIEAgSB9gSB8wDxAHYA9lyUL9F3MCIUVBgIMJRWjuNNExkzv98M
LyALzE7xZOMAAAFzvE9LiQAABAMARzBFAiA+jWpKCK7sOMd6MLDhf27d6wXaTDQZ
4H8uIoDZL3pryAIhAKzfqm3Arnbt8fE3cB3ObEYGLQi39MdhE1XT9xE13XCUAHcA
XNxDkv7mq0VEsV6a1FbmEDf71fpH3KFzlLJe5vbHDsoAAAFzvE9LvAAABAMASDBG
AiEA1TCb7W5kUdwQYmH/3CDT2Pa4bGOE/0jUeq997clw52oCIQDuC/WzK/NOEadn
kTLMIdvjBf9c+ByFHhpH3OKprNmwBjANBgkqhkiG9w0BAQsFAAOCAQEAme5gtti5
O6yi/1Mnl0rvqIaRSSvQEny4zkzBp29UD3YPHb9l43PbOjB2+fECYSoBw0BJhbyO
ux+BXmPKFtoJyuSlk9Ef7WesFlyfS9wdDPoALWlnuTpUTCNoe73PentHv20NaG5I
Ky9sz2ociMdDS8CzpxN5dhIDMFvF1qfXFlMV3i998nr7CgJfsSljiJ5lvEcgmGe1
cJ2v0tnmKI7fs7vOa++5a8Byqg2YIdPbRsoIkIJd+UHa8u9ZqNfCZ32jAB2ElK0r
JUoVSLevhMDTuttU4aLr+SY4SqG8odcq+OvRtERlph+y9XEp4z1JrksT1CViyB/Z
7hztXHANaDNaeA==
-----END CERTIFICATE-----

Private certificate server.key

-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEArsp+p8ZHoBbga9YsfUSrJEp+e4q6D5mVElOtUGBytjSY1I2a
WPADRL8llv53MzhezrMhVSuTyeqtyaJ1Y/NSCAMZ6U50XXU5mH3ghu2SH6VPYnll
iwngnoxInhtUSjxwoBwFxtZGdpM+NhPnGHJBNbGNF+MeQyTuylz4MktMkB/ibTsN
RnNmpH10DMqEDF8tLgeTci1rcY6JZvgvsE5/C4hX9EguwoxaqIm+QlKEUh/7LViM
8nMtB1ebIAJvmIikGRpr5HJr11z5/f02d12TWb59gYTw4GR0SdqkftuBsjMNfW5+
V5WxNXzowC+D189vWgFSd1gzWOmmV2RkgI3g7QIDAQABAoIBAAkitElN57h0+aMp
PTIJlhhTfGuLQ1DwFLEx28EeXrXUke2qE63KUva+NtdpfWQZR3tDiYkgufINE1WS
lCghM4xk/Rm17AcRIBgu8WlGns3gn1bk7sBm8m0sT9n+UQLVnd1VxEeG3i/xtN1c
Cka7fK+zE/jHpMaa9jrFboN9GVyponjCW6yQ4AJrzpNr15ekmAcnQfH6M5WFgoSV
7h/pKiOvqIPfXup3o0cBnQYJUTX/tiEANbOQt2JQ4f3P9uDWi4q8tpY82J+3rMl1
opx7pobM80EUKshNoe6n+693b861FbImn2EsLAcLF3LhtY4h8tvV/E4sfAaKCZFa
R2D04VECgYEA4NMZ0kN5ajbKg2p3IhxNukp/2N2hCHxC8AQrDW9qmtWpaoN5a4of
prCrsnb2vMNkaFRZK8blI7y2SFfA/aQDyRigarqEIMy7fbtGO5la9X9M0hMBRkHx
8Dw2Vrba1dhau9M/3n8+ofwqB7DxvVZ3VOIvAbOPkNLVWW8VvTi//+8CgYEAxwdI
qM5riy3v2d868UXAwdSJVzylezGZ670/7U0zQjdUssg1fgabtPdm9mVXc4EchfCK
FtkpxIGEZujLaIcyUTCwHXFsCVSMa+7T+QPOxe23K9QAPSsfJCsxuyNY6l7PhQqe
hChkbCfzbYSKxZ7HI4CglGo9QojQoVs2+1ehEOMCgYBCsv4/HhuAQl8UW9qaORFq
Sj3hpebncI4fTO1E4CAdbXQEkJrOJ706I8HcgWS0HbfFJ/kIfspuLsdZcQdleGpT
F8ZHw6v9Wx/ork2o0tdka+7riA3hvSC85/ArC7aiqLxKauLQ7Kk1P21suLcPN/7R
JQVTGOVnztTS4pztdU+o6wKBgEr/u6mg33W7Ab8gF54Dovdnl7l/6PvbXR0wW36Y
sNAq+YfFWiL7aoFvGSWQWrvz00PFuMOTYeHizHnbD4t8JsHhjvwJWaTKb3/cp5QW
kzySr4ucf9qM/Vcrz7mtQDxRLfH8Zm92qSD4jQqf/4soofIG7nv+7Ma9t6CWNsnP
46nxAoGAT45oUv7pG33NpzJ+yur+Lka3Aa80Pl6SkY6Ot9OTTN6VT0kPKFfSkQ2k
iI2skurIPUtmo0NsSNF+9ixdG012P4Al09SrP4X6v+kUJg6IZHsFvAzikGPoc1X+
RWOP+TNVR1+W/MgEDuTOn4X583SEj3DF2WlsfSUaM/E5VWb4F48=
-----END RSA PRIVATE KEY-----
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os.path

from tornado import httpserver
from tornado import ioloop
from tornado import web
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

class TestHandler(web.RequestHandler):
    def get(self):
        self.write("Hello, 雪狼 !")


def main():
    settings = {
    
    
        "static_path": os.path.join(os.path.dirname(__file__), "static"),
    }

    application = web.Application([
        (r"/", TestHandler),
    ], **settings)
    server = httpserver.HTTPServer(application, ssl_options={
    
    
        "certfile": os.path.join(os.path.abspath("."), "server.crt"),
        "keyfile": os.path.join(os.path.abspath("."), "server.key"),
    })
    print(server)
    server.listen(8000)
    ioloop.IOLoop.instance().start()


if __name__ == "__main__":
    main()

Effect screenshot
Insert picture description here

Guess you like

Origin blog.csdn.net/weixin_37254196/article/details/108219859