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

如何使用.local域名运行带SSL的本地Django开发服务器并解决证书错误

本地Django开发环境有效SSL证书解决方案

你遇到的ERR_CERT_AUTHORITY_INVALID错误,是因为runserver_plus默认生成的是未被系统信任的自签名证书,以下是两种可落地的解决方法:

方案一:使用mkcert生成本地受信任证书(推荐,适配子域名场景)

这是本地开发最常用的方案,生成的证书会被系统、所有浏览器自动信任,同时支持通配符子域名,完全适配你的跨子域名请求需求:

  • 第一步:根据你的操作系统安装mkcert(macOS可通过brew install mkcert安装,Ubuntu/Debian可通过apt install mkcert安装,Windows可通过scoop安装)
  • 第二步:执行mkcert -install,该命令会自动将mkcert的根证书写入系统和浏览器的信任列表,后续所有mkcert签发的证书都会被本地环境默认信任
  • 第三步:为你的域名生成证书,执行命令时可同时加入主域名和通配符子域名:
    mkcert mysite.local "*.mysite.local"
    
    执行完成后会在当前目录生成mysite.local.pem证书文件和mysite.local-key.pem私钥文件
  • 第四步:使用生成的证书启动runserver_plus:
    ./manage.py runserver_plus --cert-file=./mysite.local.pem --key-file=./mysite.local-key.pem
    
    启动后访问对应域名不会再出现证书错误。

方案二:手动信任现有自签名证书(无需额外工具)

如果你不想安装新的工具,也可以直接信任runserver_plus生成的自签名证书:

  • 临时使用:直接在浏览器报错页面点击「高级」-「继续前往mysite.local(不安全)」即可临时访问,该配置仅对当前浏览器生效,清除缓存或更换浏览器后需要重新操作
  • 永久生效:将/tmp/mysite.cert证书文件手动导入到系统根证书信任库:
    • macOS:双击证书文件打开钥匙串访问,找到对应证书后设置为「始终信任」
    • Windows:双击证书文件,选择安装到「受信任的根证书颁发机构」存储区
    • Linux:将证书文件复制到/usr/local/share/ca-certificates/目录,执行sudo update-ca-certificates生效

注意:如果需要跨多个子域名发起请求,要确保所有用到的子域名都被加入证书的主体备用名称(SAN)字段,使用mkcert生成证书时在命令后追加对应的域名或通配符即可,避免出现证书不匹配的问题。

内容的提问来源于stack exchange,提问作者Ben Davis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:27:08