You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Uvicorn配置启用HTTPS后本地FastAPI服务无法通过HTTPS访问问题

排查及解决Uvicorn HTTPS无法访问问题
  • 第一步:校验证书与密钥文件配置
    • 确认key.pem和cert.pem的路径是否正确:你当前使用的是相对路径./,需确保两个文件存放在运行Python脚本的工作目录下,而非app代码存放的目录。你可以先替换为绝对路径测试,避免路径读取失败,示例:ssl_keyfile="C:/your_project_path/key.pem"
    • 确认证书生成规则符合要求:本地自签名证书需保证Common Name或SAN(使用者可选名称)字段包含localhost,否则浏览器会判定证书与访问域名不匹配直接拦截。你可以用openssl命令校验证书内容:openssl x509 -in cert.pem -text -noout,检查输出的Subject或Subject Alternative Name字段是否包含localhost。
    • 若生成密钥时设置了访问密码,需在uvicorn.run参数中添加ssl_keyfile_password="你的密钥密码",否则密钥无法正常读取,SSL服务会启动失败
  • 第二步:检查Uvicorn启动日志
    启动脚本后查看控制台输出,确认是否存在SSL相关报错(如文件不存在、密钥格式错误等)。如果启动成功,日志中会显示https://localhost:8432的访问地址;如果显示的是http开头的地址,说明SSL配置未生效,Uvicorn自动降级为HTTP服务,问题出在证书/密钥的读取环节。
  • 第三步:调整浏览器访问配置
    • 访问时必须手动在地址栏补全https://前缀,直接输入localhost:8432浏览器默认会走HTTP协议,自然无法访问HTTPS服务。
    • 自签名证书默认不被浏览器信任,出现安全风险提示时,选择「高级」-「继续前往localhost」即可;如果是Chrome浏览器出现NET::ERR_CERT_INVALID提示无法点击继续,可在当前页面直接敲击键盘输入thisisunsafe,即可自动跳过拦截。
  • 第四步:排查端口与防火墙限制
    确认8432端口没有被其他程序占用,同时临时关闭Windows防火墙测试访问是否正常,避免防火墙拦截HTTPS请求。
  • 第五步:命令行启动测试
    你可以直接通过命令行启动Uvicorn排查代码配置问题,命令如下:
    uvicorn app.api:app --host localhost --port 8432 --reload --ssl-keyfile=./key.pem --ssl-certfile=./cert.pem
    
    如果命令行启动后HTTPS可以正常访问,说明你代码中的路径配置存在错误,修正路径即可。

内容的提问来源于stack exchange,提问作者Minonja Nandraina Razakasoa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 22:24:00