如何用http.server快速搭建带SSL/TLS的轻量测试服务器?
轻量化TLS测试服务器方案
http.server本身没有内置的TLS启用参数,没法直接通过命令行参数添加SSL证书,但可以通过Python自带的ssl模块快速包装服务,配合极简的自签名证书生成命令,实现接近“一行命令”的轻量化解决方案:
步骤1:快速生成自签名测试证书(一行命令)
用OpenSSL直接生成无交互的测试证书,有效期1年:
openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 365 -nodes -subj "/CN=localhost"
-nodes表示不加密私钥,简化测试流程/CN=localhost指定证书通用名称,适配本地测试场景
步骤2:启动带TLS的HTTP服务器(一行命令)
在命令行直接用Python代码包装http.server并挂载证书:
python3 -c "import http.server, ssl; server = http.server.HTTPServer(('0.0.0.0', 8443), http.server.SimpleHTTPRequestHandler); server.socket = ssl.wrap_socket(server.socket, server_side=True, certfile='server.crt', keyfile='server.key'); server.serve_forever()"
- 可将
8443替换为你需要的端口 - 确保
server.crt和server.key在当前执行目录,或指定完整文件路径
如果已有现成的SSL证书,直接执行步骤2的命令即可,无需编写单独脚本文件。
内容的提问来源于stack exchange,提问作者FDE
相关产品推荐
相关产品推荐

