Bagaimana untuk memulakan port https dalam python web.py

王林
Lepaskan: 2023-05-17 21:07:07
ke hadapan
1308 orang telah melayarinya

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
Salin selepas log masuk

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)
Salin selepas log masuk

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
Salin selepas log masuk

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()
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!