Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk memulakan port https dalam python web.py
Web.py memerlukan sijil SSL untuk memulakan port https Jika tiada sijil SSL, ia boleh dijana seperti berikut.
openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt sudo openssl rsa -in server.key -out server.key
Contoh program adalah seperti berikut:
# -*- coding: utf-8 -*- """ Created on Mon May 10 20:37:00 2021 @author: Administrator """ import web #web.py urls = ( '/server' , 'server', '/.*', 'notfound' #localhost:port/其他任意界面,访问notfound类 ) class MyApplication(web.application): def run(self, port=8080, *middleware): func = self.wsgifunc(*middleware) return web.httpserver.runsimple(func, ('0.0.0.0', port)) class server: def __init__(self): self.return_msg = {'errorCode': 0, 'msg': '系统正常!'} def POST(self): #POST处理方式与GET一致 # content = web.input() # print('收到消息:', content.key1, content.key2, content.key3) x = web.input(myfile={}) print('xxx: ', x.keys()) return str(self.return_msg).replace('\'', '\"') class notfound: def GET(self): print('--from notfound') return '404 not found' def POST(self): print('--from notfound') return '404 not found' from cheroot.server import HTTPServer from cheroot.ssl.builtin import BuiltinSSLAdapter HTTPServer.ssl_adapter = BuiltinSSLAdapter( certificate='server.crt', private_key='server.key') if __name__ == "__main__": app = MyApplication(urls ,globals()) app.run(port=443)
Langkah 1: Jalankan arahan berikut dalam shell, jawab soalan dan set Sijil yang dijana kata laluan mengandungi tiga fail ***.crt, ***.key dan ***.csr saya mengarahkan semula server.crt server.csr server.key
openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt mv server.key myserver.key mv server.crt myserver.crt
untuk memulakan perkhidmatan. . Cuma ikut kod di bawah dan masukkannya, di mana modul kaedah saya diperkenalkan oleh
dari handle import Handle dipanggil dalam url (mengikut contoh pembangunan akaun awam WeChat, jika anda seorang pemula, anda boleh melihatnya sendiri), pada masa yang sama Tulis laluan fail yang disimpan mengikut anda sendiri
import web from handle import Handle from web.wsgiserver import CherryPyWSGIServer CherryPyWSGIServer.ssl_certificate = "/usr/ssl/server.crt" CherryPyWSGIServer.ssl_private_key = "/usr/ssl/server.key" urls = ( '/wx', 'Handle', ) if __name__ == '__main__': app = web.application(urls, globals()) app.run()
dan kemudian mulakan perkhidmatan sudo python main.py 443 (di mana 443 ialah nombor port)
Pada masa ini anda perlu menetapkannya sendiri sebelum memasukkan kata laluan ssl diperlukan untuk mendayakannya, tetapi ini bermakna ia tidak boleh disembunyikan di latar belakang
Tetapi dalam folder tempat sijil dijana , jalankan sudo openssl rsa -in server.key -out server.key tanpa kata laluan, supaya ia boleh disembunyikan di latar belakang
nohup python main.py 443 &
.Atas ialah kandungan terperinci Bagaimana untuk memulakan port https dalam python web.py. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!