nginx docker 容器无法读取 certbot 证书

问题描述

我已经在本地安装了 certbot 并成功地为 mydomain.blah 和 site1.mydomain.blah 创建了证书,它们位于 /etc/letsencrypt/live/mydomain.blah/etc/letsencrypt/live/site1.mydomain.blah

现在我试图在一个 nginx 容器中使用它们,所以在我的 docker-compose 中我已经映射了一个像这样的卷:

version '3.4'

services:
  webserver:
    image: nginx
    volumes:
      - ./conf:/etc/nginx/conf.d
      - /etc/letsencrypt/live:/cert
    ports:
      - "80:80"
      - "443:443"

我的 nginx conf 就是这样:

server {
    listen       443 ssl;
    server_name  mydomain.blah;

    ssl_certificate /cert/mydomain.blah/fullchain.pem;
    ssl_certificate_key /cert/mydomain.blah/privkey.pem;

    location / {
        proxy_pass http://1.2.3.4:8080;
    }
}

server {
    listen       443 ssl;
    server_name  site1.mydomain.blah;

    ssl_certificate /cert/site1.mydomain.blah/fullchain.pem;
    ssl_certificate_key /cert/site1.mydomain.blah/privkey.pem;

    location / {
        proxy_pass http://4.3.2.1:8080;
    }
}

但是当我启动 docker-compose 时,nginx 退出并显示错误 cannot load certificate "/cert/mydomain.blah/fullchain.pem",因为有 No such file or directory

我尝试将 docker exec 放入容器中,文件夹及其证书都按预期存在,所以我不明白可能是什么问题

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)