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

Docker 容器中运行Certbot获取和管理 SSL 证书

如果你在 Docker 容器中运行 Nginx 并希望使用 Certbot 获取和管理 SSL 证书,可以使用 Certbot 的官方 Docker 镜像来完成这项工作。以下是使用 Docker 和 Certbot 获取 SSL 证书并配置 Nginx 的详细步骤:

1. 拉取 Certbot Docker 镜像

首先,确保你已经安装了 Docker。然后,拉取 Certbot 的官方 Docker 镜像:

docker pull certbot/certbot

2. 停止 Nginx 容器

在获取 SSL 证书时,Certbot 需要绑定 80 端口,因此需要暂时停止 Nginx 容器:

docker stop <nginx-container-name>

<nginx-container-name> 替换为你的 Nginx 容器名称。

3. 获取 SSL 证书

使用 Certbot Docker 容器获取 SSL 证书。以下命令将获取证书并存储在本地目录中(例如 /etc/letsencrypt):

docker run -it --rm \-v /etc/letsencrypt:/etc/letsencrypt \-v /var/lib/letsencrypt:/var/lib/letsencrypt \-v /path/to/your/webroot:/var/www/html \certbot/certbot certonly --webroot \--webroot-path /var/www/html \--email your-email@example.com \--agree-tos \--no-eff-email \-d example.com -d www.example.com

请将以下内容替换为你的实际值:

  • /path/to/your/webroot:替换为你的 Web 根目录路径。
  • your-email@example.com:替换为你的电子邮件地址。
  • example.comwww.example.com:替换为你的域名。

4. 配置 Nginx 使用 SSL 证书

在 Nginx 配置文件中设置使用新获取的 SSL 证书。以下是一个示例配置:

server {listen 80;server_name example.com www.example.com;location /.well-known/acme-challenge/ {root /var/www/html;}location / {return 301 https://$host$request_uri;}
}server {listen 443 ssl;server_name example.com www.example.com;ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!MD5;location / {root /var/www/html;index index.html index.htm;}
}

example.com 替换为你的域名,并确保证书路径与实际路径一致。

5. 启动 Nginx 容器

在更新了 Nginx 配置后,重新启动 Nginx 容器:

docker start <nginx-container-name>

6. 设置自动续订

Certbot 的证书有效期为 90 天,需要设置自动续订。可以通过创建一个 cron job 来自动运行续订命令:

0 0,12 * * * docker run -it --rm \-v /etc/letsencrypt:/etc/letsencrypt \-v /var/lib/letsencrypt:/var/lib/letsencrypt \-v /path/to/your/webroot:/var/www/html \certbot/certbot renew --webroot --webroot-path /var/www/html --quiet

这行命令将每天两次检查和续订证书。

通过以上步骤,你可以使用 Docker 中的 Certbot 容器来获取和管理 SSL 证书,并在 Docker 中运行的 Nginx 服务器上配置 SSL。

http://www.lryc.cn/news/362612.html

相关文章:

  • FL Studio21.2.8中文版水果音乐制作的革新之旅!
  • 03-JavaScript 中的相等判断与隐式类型转换
  • Linux 命令:head
  • 系统安全及其应用
  • 韩文图片文字识别,这几款软件轻松驾驭韩语文本
  • 登录安全分析报告:小米官网注册
  • LVS精益价值管理系统 LVS.Web.ashx SQL注入漏洞复现
  • 【JavaScript脚本宇宙】图表库大盘点:选择最适合你的工具
  • 【Lua】IntelliJ IDEA 写注释或选中变量单词时偶尔会选中相邻的内容或下一行内容
  • 安全风险 - 组件导出风险
  • 【HarmonyOS】应用振动效果实现
  • springCloud中将redis共用到common模块
  • 基于jeecgboot-vue3的Flowable流程-待办任务(三)
  • 如何让Google快速收录?
  • History 模式和 Hash 模式路由的区别、优缺点及在开发生产环境中的注意事项
  • 63. UE5 RPG 兼容没有武器的普通攻击
  • 【Vue】成绩案例
  • 深度学习 - PyTorch简介
  • MySQL:CRUD进阶(七千五百字)
  • 与C共舞:让编译更顺滑(2)
  • Go 群发邮件Redis 实现邮件群发
  • 夕小瑶:资本寒冬下的AI创业一年
  • [JAVASE] 异常 与 SE阶段知识点补充
  • 可视化数据科学平台在信贷领域应用系列一:数据探索
  • SpringBoot发送Gmail邮件
  • 【小海实习日记】金融-现货以及合约理解
  • html 添加元素如何能提升速度
  • 人工智能大模型的进化之路:探索如何让它们变得更“聪明”
  • 【设计模式深度剖析】【6】【结构型】【外观模式】| 以电脑开关按钮为例,并结合微服务架构的API网关加深理解
  • 2024拼多多 最新理论+实战干货,从入门到精通全链路多角度学习-7节课