当前位置: 首页 > news >正文

docker环境下如何使用lets Encrypt自动续签

前言

我的linux服务器运行的是centos8; nginx采用的是docker-compose部署的方式,采用certbot docker容器申请和自动续期encrypt证书

1:docker安装certbot容器 并且停止nginx容器

docker pull certbot/certbot

docker-compose stop nginx-proxy

2:创建letsencrypt目录存放证书与之前手动下载的证书区分

我的letsencrypt目录为 /data/nginx/certs/letsencrypt

3:修改nginx下两个站点的配置文件的ssl路径为lets encrypt的证书文件

点击查看代码
# /docker/nginx/conf.d/thinkphp.conf
server {listen 443 ssl http2;server_name tp.example.com;ssl_certificate /etc/nginx/certs/letsencrypt/live/tp.example.com/fullchain.pem;ssl_certificate_key /etc/nginx/certs/letsencrypt/live/tp.example.com/privkey.pem;location / {proxy_pass http://thinkphp-app:9000;  # 假设你的 ThinkPHP 容器名为 thinkphp-appproxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}server {listen 80;server_name tp.example.com;return 301 https://$host$request_uri;
}

4:运行certbot申请证书

在 /data/nginx 目录下运行

点击查看代码
docker run --rm \-v $(pwd)/certs/letsencrypt:/etc/letsencrypt \-v $(pwd)/logs/letsencrypt:/var/log/letsencrypt \-p 80:80 \certbot/certbot certonly \--standalone \--non-interactive \--agree-tos \--email 2607771759@qq.com \--domains wordpress.leyanpei.com

成功后会有如下提示 image

5:重启nginx

在 /data/nginx 目录下运行 docker-compose up -d

6:设置自动续期

在 /data/nginx 目录下创建脚本renew-certe.sh 内容如下

点击查看代码
#!/bin/bash
cd /data/nginx# 停止 nginx(释放 80 端口)
docker-compose stop nginx-proxy# 续期证书
docker run --rm \-v $(pwd)/certs/letsencrypt:/etc/letsencrypt \-v $(pwd)/logs/letsencrypt:/var/log/letsencrypt \certbot/certbot renew --quiet# 重启 nginx
docker-compose up -d

赋予执行权限 chmod +x /data/nginx/renew-certs.sh

添加定时任务 crontab -e

每周日凌晨2:30执行
30 2 * * 0 /data/nginx/renew-certs.sh >> /data/nginx/logs/certbot-renew.log 2>&1

遇到的坑

成功运行完4的命令后letsencrypt文件夹下没有证书文件

查看/data/nginxlogs/letsencrypt下的日志发现 证书存放的文件是

点击查看代码
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/wordpress.leyanpei.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/wordpress.leyanpei.com/privkey.pem
然后比照我第3步骤的路径发现是当时写错了
http://www.jsqmd.com/news/40403/

相关文章:

  • Crosstool-NG构建arm交叉编译工具链
  • 获取docker前一分钟的至现在日志
  • 【转载】python如何录屏
  • 2025 年 11 月一力油漆/一力涂料厂家推荐排行榜:醇酸油漆,环氧富锌底漆,丙烯酸聚氨酯油漆优质品牌精选
  • 2025 年 11 月一力油漆/一力涂料厂家推荐排行榜:醇酸油漆,环氧富锌底漆,丙烯酸聚氨酯油漆专业选购指南
  • AI一周资讯 251108-251114
  • 2025年模块电源十大品牌权威排行榜揭晓,铁路电源/军用电源/新能源车载逆变电源/光伏电源/辅助应急电源/电源模块/高功率密度电源厂商排行榜
  • 解决EF Core数据同步问题:从强制刷新到单例模式的演进
  • leetcode36. 有效的数独
  • 2025年塑料皮带轮批发厂家权威推荐榜单:塑料电机齿轮/尼龙圆柱齿轮/塑料齿轮源头厂家精选
  • 102302104刘璇-数据采集与融合技术实践作业3
  • Pandas --Series序列
  • B5819W-ASEMI可直接替代安世PMEG4010CEGW
  • 习题解析之:字符大小写转换
  • ASM指令做题记录
  • Java 并行编程
  • 视频汇聚平台EasyCVR化解高速服务区管理难题,打造高速服务区的智慧监控方案
  • Linux Shell脚本基础语法
  • 不懂 Attention 不算懂 AI?十大奠基论文(一):一文读懂《Attention Is All You Need》
  • 2025年直埋保温管供货厂家权威推荐榜单:热力管道/夹克保温管/预制直埋保温管源头厂家精选
  • 2025上海专业防水补漏推荐!Top5口碑公司实测,先检测后施工有保障
  • 2025年通风气楼厂家权威推荐榜单:钢结构厂房气楼/顺坡气楼/排烟通风气楼源头厂家精选
  • 楼宇间网络拓扑测绘 从原理到精准部署
  • IP种子技术:构建全球P2P网络实时监测方案
  • IP应用场景全图谱:你的IP属于哪一类?
  • windows下配置cmake+opencv报错
  • 编译lazarus时,可能出现Makefile:3520: recipe for target fcllaz.ppu failed的处理方法
  • 破局代码思维:软件开发公司的体验式竞争力进化
  • IP定位面积揭秘:为什么你的IP归属地会不准确?
  • 无需人工奖励!Meta FAIR华人团队提出「早期经验学习范式」,AI智能体像人类一样“从错误中成长”