Python SSL 服务器给我“501 Unsupported method GET”

2023-11-27

我已经关注了这个链接使用 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(使用前将#替换为@)

Python SSL 服务器给我“501 Unsupported method GET” 的相关文章

随机推荐