docker环境下配置cerbot获取免费ssl证书并自动续期-操作目标

时间:2024-09-30 10:02:39

在这里插入图片描述
先不着急执行此命令,需要先去nginx的域名下面配置验证文件:
在nginx.conf下配置

在这里插入图片描述
对应关系如下:
宿主机和nginx容器对应文件目录

文件名称 文件拥有者
/my/nginx/html 宿主机目录位置
/usr/share/nginx/html nginx容器

宿主机和certbot容器对应文件目录

文件名称 文件拥有者
/my/nginx/html/certbot 宿主机目录位置
/data/letsencrypt cerbot

执行上面的命令后, 验证文件会放在cerbot 容器的 /data/letsencrypt /.well-known/acme-challenge/,对应着 宿主机的 /my/nginx/html/certbot/.well-known/acme-challenge/ ,也就是对应nginx容器对应的 /usr/share/nginx/html/certbot/.well-known/acme-challenge/
。 通过这对应关系,后面才能执行成功。

  # 处理特定后缀的请求
 location  ~/.well-known/acme-challenge/ {
       root /usr/share/nginx/html/certbot;           
}

  • 1
  • 2
  • 3
  • 4
  • 5

执行命令:

 docker run -it --rm --name certbot \
            -v /my/nginx/ssl/wiseinsightai/certbot/etc/letsencrypt:/etc/letsencrypt \
            -v /my/nginx/ssl/wiseinsightai/certbot/var/lib/letsencrpt:/var/lib/letsencrypt \
            -v /my/nginx/ssl/wiseinsightai/certbot/var/log/letsencrpt:/var/log/letsencrypt \
            -v /my/nginx/html/certbot:/data/letsencrypt \
            certbot/certbot certonly  \
            --webroot  \
            --webroot-path=/data/letsencrypt \
            --agree-tos -d XXX.com

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

正常情况下,执行成功,会生成证书,在/etc/letsencrypt/live/域名/live下,对应的宿主机目录下:在这里插入图片描述

再根据对nginx容器的容器卷映射,转成nginx的目录:
即: # 对应 /my/nginx/ssl/wiseinsightai/certbot/etc/letsencrypt/live/域名