LetsEncrypt 证书续订脚本无法通过 docker compose 运行

问题描述 投票:0回答:1

我有一个运行 SSL 的网站,使用 lets encrypt 完成。我已经按照这个 guide 编写/使用了一个脚本,但是证书不会自动更新。每 90 天我需要手动运行 lets encrypt renewal 命令来为我的网站获取新证书。

这就是我的 docker-compose 对于 nginx 和 certbot 的样子

nginx:
  build: nginx-image
  image: km-nginx
  volumes:
    - ./data/certbot/conf:/etc/letsencrypt
    - ./data/certbot/www:/var/www/certbot
  ports:
    - 80:80
    - 443:443
  depends_on:
    - keycloak
    - km-app
  links:
    - keycloak
    - km-app
  environment:
    - PRODUCTION=true
  command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
  


 certbot:
    image: certbot/certbot
    restart: unless-stopped
    volumes:
      - ./data/certbot/conf:/etc/letsencrypt
      - ./data/certbot/www:/var/www/certbot
    entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew --webroot -w /var/www/certbot; sleep 12h & wait $${!}; done;'"
  
docker nginx ssl lets-encrypt certbot
1个回答
0
投票

您应该将 cerbot 详细选项 添加到您的

cerbot renew
命令中,以检查发生了什么。

指南提到:

编辑脚本以添加您的域和电子邮件地址。
如果您更改了共享 Docker 卷的目录,请确保您也调整了

data_path
变量。

所以检查

init-letsencrypt.sh
并确保:

  • 设置了正确的域/电子邮件
  • data_path="./data/certbot"
    路径存在于您的主机上,因为这是容器安装的路径。
© www.soinside.com 2019 - 2024. All rights reserved.