Python -m http.server 443-使用SSL?

时间:2019-06-08 03:43:41

标签: python python-3.x http ssl server

是否可以使用SSL证书创建临时的Python3 HTTP服务器?例如:

$ python3 -m http.server 443 --certificate /path/to/cert

2 个答案:

答案 0 :(得分:1)

实际上没有,但是有一个实现使用与ssl相同的软件包。 您应该try it

该脚本是使用Python 2编写的,但是由于它只有5行,因此很容易再次用Python 3实现。

http.server是Python 3,等效于Python 2中的SimpleHTTPServer。

import BaseHTTPServer, SimpleHTTPServer
import ssl

httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./server.pem', server_side=True)
httpd.serve_forever()

脚本功劳归于dergachev

答案 1 :(得分:1)

不是从命令行开始的,但是编写一个简单的脚本来这样做很简单。

from http.server import HTTPServer, BaseHTTPRequestHandler 
import ssl
httpd = HTTPServer(('localhost', 4443), BaseHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(
    httpd.socket,
    keyfile="path/to/key.pem",
    certfile='path/to/cert.pem',
    server_side=True)
httpd.serve_forever()

Credit

如果您不受限于标准库并且可以安装pip软件包,则还有许多其他选项,例如,您可以安装uwsgi,它接受命令行选项。