【发布时间】:2021-05-16 02:31:30
【问题描述】:
我已经在本地安装了 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 放入容器中,并且文件夹及其证书都按预期存在,所以我不明白可能是什么问题
【问题讨论】:
标签: nginx ssl docker-compose lets-encrypt certbot