是否可以使用SSL证书创建临时的Python3 HTTP服务器?例如:
$ python3 -m http.server 443 --certificate /path/to/cert
答案 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()
如果您不受限于标准库并且可以安装pip软件包,则还有许多其他选项,例如,您可以安装uwsgi,它接受命令行选项。