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

Windows下Docker部署Django项目Nginx SSL证书加载失败

解决方案

1. 恢复证书的标准PEM格式

把之前修改为-----BEGIN TRUSTED CERTIFICATE-----的证书内容改回原始格式:

-----BEGIN CERTIFICATE-----
...(原证书内容)...
-----END CERTIFICATE-----

TRUSTED CERTIFICATE格式仅用于CA信任证书,服务器证书不需要此格式,强行修改会导致Nginx无法正确解析证书。

2. 直接使用mkcert生成的文件,无需额外转换

mkcert生成的文件已经是标准PEM格式:

  • 将my-dev-env.local.pem直接重命名为my-dev-env.local.crt(证书文件)
  • 将my-dev-env.local-key.pem直接重命名为my-dev-env.local.key(私钥文件)
    无需用openssl重新转换,避免引入格式问题。

3. 检查Nginx配置与Docker挂载路径

  • 确认Nginx配置文件中的SSL路径指向正确:
    ssl_certificate /etc/nginx/certs/my-dev-env.local.crt;
    ssl_certificate_key /etc/nginx/certs/my-dev-env.local.key;
    
    错误日志中的cannot load certificate "data:"提示配置可能误用了data: URI而非文件路径,需修正为实际挂载的文件路径。
  • 检查Docker Compose配置,确保证书目录正确挂载到Nginx容器:
    services:
      nginx:
        volumes:
          - ./path/to/your/certs:/etc/nginx/certs
    
    替换./path/to/your/certs为本地证书文件所在的实际目录。

4. 确认本地CA证书信任

运行mkcert -install后,mkcert的根CA已安装到Windows信任存储,可通过以下步骤验证:

  • 按下Win+R输入certmgr.msc打开证书管理器
  • 依次展开"受信任的根证书颁发机构" -> "证书",确认存在名为mkcert XXX的证书

5. 重启Docker栈

修改配置和证书后,彻底重启所有容器:

docker-compose down
docker-compose up -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:29:51