使用 Certbot 自动获取和更新 Let‘s Encrypt SSL 证书

文章目录

  • 引言
  • 一、什么是 Certbot?
  • 二、安装 Certbot
    • 2.1 在 Ubuntu/Debian 上安装 Certbot
    • 2.2 在 CentOS/RHEL 上安装 Certbot
    • 2.3 使用 Snap 安装 Certbot
  • 三、获取 SSL 证书
    • 3.1 为 Nginx 获取 SSL 证书
    • 3.2 为 Apache 获取 SSL 证书
    • 3.3 手动获取 SSL 证书
  • 四、自动更新 SSL 证书
  • 五、配置 Web 服务器使用 SSL 证书
    • 5.1 Nginx 配置示例
    • 5.2 Apache 配置示例
  • 六、常见问题与解决方案
    • 6.1 证书获取失败
    • 6.2 自动更新失败
  • 七、总结


引言

在当今互联网环境中,SSL/TLS 证书已成为保护网站数据传输安全的标准配置。Let's Encrypt 作为一个免费、自动化且开放的证书颁发机构(CA),为广大网站提供了便捷的 SSL 证书获取途径。而 Certbot 则是 Let's Encrypt 官方推荐的客户端工具,能够帮助用户轻松获取和更新 SSL 证书。本文将详细介绍如何使用 Certbot 自动获取和更新 Let's Encrypt SSL 证书。

在这里插入图片描述

一、什么是 Certbot?

Certbot 是一个由 EFF(电子前沿基金会)开发的自动化工具,用于获取和部署 Let's Encrypt SSL 证书。它支持多种操作系统和 Web 服务器(如 ApacheNginx 等),并且能够自动配置服务器以使用 SSL 证书。

二、安装 Certbot

在开始使用 Certbot 之前,首先需要在服务器上安装它。以下是在不同操作系统上安装 Certbot 的步骤。

2.1 在 Ubuntu/Debian 上安装 Certbot

sudo apt update
sudo apt install certbot python3-certbot-nginx  # 对于 Nginx
sudo apt install certbot python3-certbot-apache # 对于 Apache

2.2 在 CentOS/RHEL 上安装 Certbot

sudo yum install epel-release
sudo yum install certbot python3-certbot-nginx  # 对于 Nginx
sudo yum install certbot python3-certbot-apache # 对于 Apache

2.3 使用 Snap 安装 Certbot

Certbot 也可以通过 Snap 安装,适用于大多数 Linux 发行版:

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

三、获取 SSL 证书

安装 Certbot 后,可以使用它来获取 SSL 证书。以下是针对不同 Web 服务器的操作步骤。

3.1 为 Nginx 获取 SSL 证书

sudo certbot --nginx

Certbot 会自动检测 Nginx 的配置文件,并提示你选择需要获取证书的域名。之后,Certbot 会自动获取证书并修改 Nginx 配置文件以启用 HTTPS

3.2 为 Apache 获取 SSL 证书

sudo certbot --apache

Nginx 类似,Certbot 会自动检测 Apache 的配置文件,并提示你选择需要获取证书的域名。之后,Certbot 会自动获取证书并修改 Apache 配置文件以启用 HTTPS

3.3 手动获取 SSL 证书

如果你不想让 Certbot 自动修改 Web 服务器配置文件,可以使用以下命令手动获取证书:

sudo certbot certonly --standalone -d example.com -d www.example.com

此命令会启动一个临时的 Web 服务器来完成域名验证,并将证书保存在 /etc/letsencrypt/live/example.com/ 目录下。

四、自动更新 SSL 证书

Let's Encrypt 的证书有效期为 90 天,因此需要定期更新。Certbot 提供了自动更新功能,可以通过以下命令测试自动更新:

sudo certbot renew --dry-run

如果测试成功,可以将 Certbot 的自动更新任务添加到 crontab 中,以确保证书在到期前自动更新:

sudo crontab -e

添加以下行以每天检查并更新证书:

0 0 * * * /usr/bin/certbot renew --quiet

五、配置 Web 服务器使用 SSL 证书

5.1 Nginx 配置示例

Nginx 配置文件中,添加以下内容以启用 SSL

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;

    location / {
        root /var/www/html;
        index index.html;
    }
}

5.2 Apache 配置示例

Apache 配置文件中,添加以下内容以启用 SSL

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

    <Directory /var/www/html>
        AllowOverride All
    </Directory>
</VirtualHost>

六、常见问题与解决方案

6.1 证书获取失败

如果 Certbot 在获取证书时失败,可能是由于以下原因:

  • 域名解析未正确配置:确保域名已正确解析到服务器 IP。
  • 防火墙阻止了 HTTP/HTTPS 请求:确保服务器的 80 和 443 端口已开放。

6.2 自动更新失败

如果自动更新失败,可以尝试手动更新证书:

sudo certbot renew

如果仍然失败,检查 Certbot 日志文件 /var/log/letsencrypt/letsencrypt.log 以获取更多信息。

七、总结

Certbot 是一个强大且易于使用的工具,能够帮助用户轻松获取和更新 Let's Encrypt SSL 证书。通过本文的介绍,你应该已经掌握了如何安装 Certbot、获取 SSL 证书、配置 Web 服务器以及设置自动更新。希望本文能帮助你更好地保护你的网站数据传输安全。

如果你有任何问题或建议,欢迎在评论区留言讨论!

参考链接:

  • Certbot 官方文档
  • Let’s Encrypt 官方网站
  • Nginx 官方文档
  • Apache 官方文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/972467.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

idea-gradle打包运行配置

最近接触了一个项目&#xff0c;使用gradle做为构建工具&#xff0c;这里记录一波&#xff0c;毕竟平时使用的都是maven idea 配置 这里有个坑&#xff0c;Gradle Wrapper&#xff0c;配置的地址gradle下载超时 这个配置修改成阿里的 第一张 第二张 第二张配置的jvm貌似没啥用…

AD(Altium Designer)器件封装——立创商城导出原理图和PCB完成器件封装操作指南

1、立创商城下载原理图和PCB图 1.1 打开立创商城 官网:www.SZLCSC.COM 1.2 寻找所需器件 以芯片为例 器件类——>芯片类——>对应芯片 1.3 确定所需芯片 确定芯片——>数据手册 1.4 打开原理图和PCB图 1:原理图 2:PCB 3:打开 1.5 导出原理图 操作

Kubernetes:EKS 中 Istio Ingress Gateway 负载均衡器配置及常见问题解析

引言 在云原生时代&#xff0c;Kubernetes 已经成为容器编排的事实标准。AWS EKS (Elastic Kubernetes Service) 作为一项完全托管的 Kubernetes 服务&#xff0c;简化了在 AWS 上运行 Kubernetes 的复杂性。Istio 作为服务网格领域的佼佼者&#xff0c;为微服务提供了流量管理…

【CUDA 】第4章 全局内存——4.4 核函数可达到的带宽(3展开转置)【补图】

CUDA C编程笔记 第四章 全局内存4.4 核函数可达到的带宽4.4.2.3 展开转置【为每个线程分配更独立的任务】 待解决的问题&#xff1a; 第四章 全局内存 4.4 核函数可达到的带宽 4.4.2.3 展开转置【为每个线程分配更独立的任务】 展开&#xff1a;提高转置内存带宽的利用率&a…

后端重载和重写的区别

重载 相同的方法名&#xff0c;形参数量不同或者参数顺序不同或者参数类型不同称为方法重载 重写 方法名和形参列表相同 重写方法前提:必须存在继承关系 (1)方法重载是&#xff1a;一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法…

字节最新AI 版IDE:用Trae开发网站打包信息追踪插件,国产版Cursor表现如何?

文章首发地址&#xff1a;https://juejin.cn/post/7472684607365922850 插件背景及项目概述 在现代前端开发中&#xff0c;我们常常需要获取当前线上环境的代码构建信息&#xff0c;如项目打包人、打包时间、Git版本信息等。在持续集成/持续交付&#xff08;CI/CD&#xff09…

MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 1

第01章_Linux下MySQL的安装与使用 首先在vmware中下载centos7&#xff0c;实际上8更好一点&#xff0c;不过centos已经是时代的眼泪了&#xff0c;我之前已经教过了&#xff0c;不过是忘了&#xff0c;所以重新说一遍&#xff0c;看文档即可 2.开机前修改mac地址 &#xff0…

网络工程师 (47)QOS

一、概念与原理 QOS即服务质量&#xff08;Quality of Service&#xff09;是一种网络技术&#xff0c;用于管理和保证网络中不同类型的质量和性能。它通过设置优先级和带宽限制等策略&#xff0c;确保关键应用&#xff08;如视频会议、语音通信&#xff09;的数据包能够在网络…

什么是幂等性?

一.幂等性 什么是幂等性&#xff1f; 在计算机科学和数学领域中&#xff0c;” 幂等性 “虽然源于相同的概念&#xff0c;但其应用和具体含义有所不同 在数学中&#xff1a;幂等性是一个代数性质&#xff0c;描述的是一个操作或函数在多次应用后结果不变的特性 在分布式系统…

PyCharm Terminal 自动切换至虚拟环境

PyCharm 虚拟环境配置完毕后&#xff0c;打开终端&#xff0c;没有跟随虚拟环境切换&#xff0c;如图所示&#xff1a; 此时&#xff0c;需要手动将终端切换为 Command Prompt 模式 于是&#xff0c;自动切换至虚拟环境 每次手动切换&#xff0c;比较麻烦&#xff0c;可以单…

YOLOv12从入门到入土(含结构图)

论文链接&#xff1a;https://arxiv.org/abs/2502.12524 代码链接&#xff1a;https://github.com/sunsmarterjie/yolov12 文章摘要&#xff1a; 长期以来&#xff0c;增强YOLO框架的网络架构一直至关重要&#xff0c;但一直专注于基于cnn的改进&#xff0c;尽管注意力机制在建…

我用AI做数据分析之数据清洗

我用AI做数据分析之数据清洗 AI与数据分析的融合效果怎样&#xff1f; 这里描述自己在使用AI进行数据分析&#xff08;数据清洗&#xff09;过程中的几个小故事&#xff1a; 1. 变量名的翻译 有一个项目是某医生自己收集的数据&#xff0c;变量名使用的是中文&#xff0c;分…

解锁机器学习核心算法 | K-平均:揭开K-平均算法的神秘面纱

一、引言 机器学习算法种类繁多&#xff0c;它们各自有着独特的优势和应用场景。前面我们学习了线性回归算法、逻辑回归算法、决策树算法。而今天&#xff0c;我们要深入探讨的是其中一种经典且广泛应用的聚类算法 —— K - 平均算法&#xff08;K-Means Algorithm&#xff09…

Bigemap Pro如何设置经纬网出图网格设置

第一步&#xff1a;打开bigemap pro软件&#xff0c;单击顶部网格选项第二栏&#xff0c;弹出经纬网设置对话框&#xff0c;如下图&#xff1a; 按作图需求自定义设置后&#xff0c;点击应用如下图&#xff1a; 第二步&#xff1a;设置好经纬网之后&#xff0c;进行作图&#x…

K8s 之端口暴露(The Port of K8s is Exposed)

K8s 之端口暴露 Kubernetes 是一个用于管理容器化应用程序的流行工具。然而&#xff0c;关于它的工作原理存在一些误解。最常见的误解之一是关于 Kubernetes Pod 中的端口暴露。本文将解释 Kubernetes 中端口暴露的真相。 1 误解 像许多 Kubernetes 新手一样&#xff0c;我最…

操作系统2.4

一、死锁&#xff0c;饥饿&#xff0c;死循环 死锁&#xff1a;各进程互相等待对方手里的资源&#xff0c;导致各进程都阻塞&#xff0c;无法向前推进的现象 饥饿&#xff1a;由于长期得不到想要的资源&#xff0c;某进程无法向前推进的现象&#xff0c;例如&#xff1a;短进…

解决DeepSeek服务器繁忙问题的实用指南

目录 简述 1. 关于服务器繁忙 1.1 服务器负载与资源限制 1.2 会话管理与连接机制 1.3 客户端配置与网络问题 2. 关于DeepSeek服务的备用选项 2.1 纳米AI搜索 2.2 硅基流动 2.3 秘塔AI搜索 2.4 字节跳动火山引擎 2.5 百度云千帆 2.6 英伟达NIM 2.7 Groq 2.8 Firew…

c++进阶———继承

1.引言 在一些大的项目中&#xff0c;我们可能要重复定义一些类&#xff0c;但是很麻烦&#xff0c;应该怎么办呢&#xff1f;举个简单的例子&#xff0c;我要做一个全校师生统计表&#xff0c;统计学号&#xff0c;教师编号&#xff0c;姓名&#xff0c;年龄&#xff0c;电话…

Android 平台GB28181设备接入实战指南

一、引言 随着视频监控技术的不断发展&#xff0c;国标 GB28181 协议在安防监控领域得到了广泛应用。该协议为不同厂家的视频监控设备之间的互联互通提供了统一的规范&#xff0c;使得设备的接入与管理变得更加简单和高效。在 Android 平台上实现 GB28181 设备接入&#xff0c…

细说Java 引用(强、软、弱、虚)和 GC 流程(一)

一、引用概览 1.1 引用简介 JDK1.2中引入了 Reference 抽象类及其子类&#xff0c;来满足不同场景的 JVM 垃圾回收工作&#xff1a; SoftReference 内存不足&#xff0c;GC发生时&#xff0c;引用的对象&#xff08;没有强引用时&#xff09;会被清理&#xff1b;高速缓存使用…