How to start https port in python web.py

王林
Release: 2023-05-17 21:07:07
forward
1308 people have browsed it

python web.py starts the https port

Web.py needs an SSL certificate to start the https port. If there is no SSL certificate, it can be generated as follows.

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
Copy after login

The sample program is as follows:

# -*- 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)
Copy after login

Supplementary: python web.py to open https

The first step: Execute the following commands in the shell, answer the questions, and set The password generated certificate contains three files ***.crt, ***.key and ***.csr. I re-command 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
Copy after login

to start the service. Just enter the following code, where my method module introduced by

from handle import Handle is called in urls (following the example of WeChat public account development, if you are a novice you can see it yourself), at the same time Write the saved file path according to your own

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()
Copy after login

Then start the service sudo python main.py 443 (where 443 is the port number)

At this time you need to set it yourself before entering ssl Password can be used to open it, but this means that it cannot be hidden in the background.

But in the folder where the certificate is generated, execute sudo openssl rsa -in server.key -out server.key without a password, so that it can be hidden in the background. Execute

nohup python main.py 443 &

The above is the detailed content of How to start https port in python web.py. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!