如果我理解正确的话,您需要做的就是在特定域上托管一个 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
它似乎不起作用,我不明白。