Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk memulakan port https dalam python web.py

Bagaimana untuk memulakan port https dalam python web.py

王林
王林ke hadapan
2023-05-17 21:07:071269semak imbas

Python web.py memulakan port https

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)

Tambahan: python web.py membuka https

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam