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

【Docker】快速部署 Certbot 并为 Nginx 服务器配置 SSL/TLS 证书

【Docker】快速部署 Certbot 并为 Nginx 服务器配置 SSL/TLS 证书

引言

Certbot 是一个免费的开源工具,用于自动化管理和获取 SSL/TLS 证书,主要用于与 Let’s Encrypt 证书颁发机构交互。

步骤

  1. Nginx 挂载 certbot 文件夹。
docker run -d \
  --name nginx \
  -p 80:80 \
  -p 443:443 \
  -v "$(pwd)/nginx/nginx.conf:/etc/nginx/nginx.conf" \
  -v "$(pwd)/nginx/conf.d:/etc/nginx/conf.d" \
  -v "$(pwd)/nginx/log:/var/log/nginx" \
  -v "$(pwd)/nginx/html:/usr/share/nginx/html" \
  -v "$(pwd)/certbot/www:/usr/share/certbot/www:ro" \
  -v "$(pwd)/certbot/ssl:/usr/share/certbot/ssl:ro" \
  --restart always \
  nginx:latest
  1. 修改 Nginx 配置文件 default.conf。
server {
    listen       80;
    listen  [::]:80;
    server_name  example.com www.example.com;

    location /.well-known/acme-challenge/ {
        root /usr/share/certbot/www;
    }

    location / {
        root   /usr/share/nginx/html;
        try_files $uri $uri/ /index.html last;
        index  index.html index.htm;
    }
}
  1. 创建证书(仅需运行一次)
docker run --rm \
  -v "$(pwd)/www:/usr/share/certbot/www:rw" \
  -v "$(pwd)/ssl:/etc/letsencrypt:rw" \
  certbot/certbot certonly \
  --webroot -w /usr/share/certbot/www \
  -d example.com \
  -d www.example.com \
  --non-interactive \
  --agree-tos \
  --expand \
  -m example@example.com
  1. 修改 Nginx 配置文件 default.conf,启用 SSL 证书。
server {
    listen       80;
    listen  [::]:80;
    server_name  example.com www.example.com;

    location /.well-known/acme-challenge/ {
        root /usr/share/certbot/www;
    }

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen       443 ssl;
    listen  [::]:443 ssl;
    server_name  example.com www.example.com;

    ssl_certificate /usr/share/certbot/ssl/live/example.com/fullchain.pem;
    ssl_certificate_key /usr/share/certbot/ssl/live/example.com/privkey.pem;

    location / {
        root   /usr/share/nginx/html;
        try_files $uri $uri/ /index.html last;
        index  index.html index.htm;
    }
}
  1. https 启用成功

相关文章:

  • AI反检测如何在TikTok养号中发挥关键作用?
  • springboot--页面的国际化
  • SSM aop切面编程的学习
  • 掌握C语言文件操作:从理论到实战指南
  • 一键精准采集单网页,告别手动复制粘贴
  • 【教学类-102-08】剪纸图案全套代码08——Python点状虚线优化版本02(有空隙)+制作1图2图6图24图
  • Matlab 非线性阻尼四分之一车体被动和模糊pid控制悬架对比
  • leetcode_15. 三数之和_java
  • [蓝桥杯]R格式(CC++双语版)
  • Xdocreport实现根据模板导出word
  • 图论整理复习
  • 国标GB28181视频平台EasyCVR如何搭建汽车修理厂远程视频网络监控方案
  • std::string` 类
  • 数据库数据恢复——sql server数据库被加密怎么恢复数据?
  • Dify+DeepSeek能做出什么来?快速构建可扩展的 AI 应用
  • 程序化广告行业(76/89):行业融资全景剖析与代码应用拓展
  • 电力交易中长期市场基础知识
  • 高并发的业务场景下,如何防止数据库事务死锁
  • image tokenizer 原理和代码
  • C++ 知识笔记
  • 户外网站 整站下载/打开网站搜索
  • 网站优化建设宁夏/seo关键词优化公司哪家好
  • 如何做好网站推广营销/网站排名查询工具有哪些
  • 携程旅游网官方网站 做攻略/竞价推广托管公司价格
  • 手机免费制作ppt/陕西网络营销优化公司
  • 北京网站建设报价/产品推广的目的和意义