使用 Docker 时,Certbot 无法为 Nginx 生成 SSL 证书

使用 Docker 时,Certbot 无法为 Nginx 生成 SSL 证书

如果我理解正确的话,您需要做的就是在特定域上托管一个 Web 服务器,然后使用特定参数执行 certbot 命令。

我在我的 VPS 中创建了一个名为的目录,并live创建了以下内容,

  • docker-compose.yml
  • web/Dockerfile
  • web/index.html
  • config/nginx/conf.d/default.conf
  • letsencrypt/

里面docker-compose.yml

version: "3.8"
services:
  web:
    build:
      context: "./web"
      dockerfile: "Dockerfile"
    ports:
      - "80:80"
    container_name: "web"
    volumes:
      - "./config/nginx/conf.d:/etc/nginx/conf.d"
  certbot:
    image: "certbot/certbot"
    volumes:
      - "./letsencrypt:/etc/letsencrypt"
    command: certonly

里面default.conf

server {
    listen 80;
    server_name mydomain.com www.mydomain.com;

    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }

    location /.well-known/acme-challenge/ {
        root /usr/share/nginx/html;
        allow all;
        try_files $uri =404;
    }
}

我首先尝试构建docker compose build web,然后docker compose up -d web,检查我的域名,我看到网站托管我的简单网站index.html就好了。

运行docker compose run certbot将执行安装脚本,在某些时候它要求我输入一个--webroot路径,但当我输入时/usr/share/nginx/html它似乎不起作用,我不明白。

相关内容