我已经关注了这个链接使用 SSL 构建一个简单的文件服务器。
from http.server import HTTPServer, BaseHTTPRequestHandler
import ssl
httpd = HTTPServer(('localhost', 4443), BaseHTTPRequestHandler)
# openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
httpd.socket = ssl.wrap_socket (httpd.socket, keyfile="key.pem", certfile='cert.pem', server_side=True)
httpd.serve_forever()
我已经成功创建了证书,key.pem
and cert.pem
文件路径很酷,我可以使用启动服务器python server.py
。系统要求我输入密码,输入密码,然后它冻结了一会儿,然后似乎可以运行。
但是,当我输入一些网址时,例如https://localhost:4443/index.html
I get 500 不支持的方法 GET。错误代码说明:HTTPStatus.NOT_IMPLMENTED - 服务器不支持此操作。我需要做更多的事情来让我的服务器为当前目录提供服务吗?到目前为止我刚刚使用过python -m http.server 8000
(SimpleHTTPServer
在 Mac 上。)我使用的是 Python 3。
这是一个将留在本地的所以不用担心PEM
文件和通过它公开的服务器脚本(如果它有效!)。我也同意证书不受信任,并指示 Chrome 无论如何访问该页面。我只需要它允许我访问相机,而无需将我的应用程序部署在具有合法证书的地方。
来自docs:
类http.server.BaseHTTPRequestHandler(请求,客户端地址,服务器)
该类用于处理到达服务器的 HTTP 请求。它本身无法响应任何实际的 HTTP 请求;必须对其进行子类化才能处理每个请求方法(例如 GET 或 POST)。
尝试使用简单HTTP请求处理程序相反,例如
httpd = socketserver.TCPServer(('localhost', 4443), SimpleHTTPRequestHandler)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)