Certbot实现SSL免费证书自动续签(CentOS 7 + nginx/apache)

devtools/2025/3/16 13:52:10/

在 CentOS 上,你可以使用 Let’s Encrypt 提供的 Certbot 工具来申请和自动续约免费的 SSL 证书。


1. 安装 Certbot

CentOS 7+ 安装 EPEL 和 Certbot

yum install -y epel-release
yum install -y certbot python3-certbot-nginx

如果使用的是 Apache

yum install -y certbot python3-certbot-apache

CentOS 8+ (使用 DNF)

dnf install -y epel-release
dnf install -y certbot python3-certbot-nginx

2. 申请 SSL 证书

根据你的 Web 服务器,运行以下命令:

Nginx

certbot --nginx -d yourdomain.com -d www.yourdomain.com

Apache

certbot --apache -d yourdomain.com -d www.yourdomain.com

首次运行时,它会:

  1. 验证域名所有权
  2. 自动配置 HTTPS 证书
  3. 证书默认有效期 90 天

PS:如果nginx不是默认的安装路径,可以手动指定并自行修改nginx的配置文件,参考Certbot实现SSL免费证书自动续签(CentOS 7版 + Docker部署的nginx) 中的方案2 webroot模式


3. 配置自动续约

Let’s Encrypt 证书 90 天后会过期,因此需要定期续约。

检查 Certbot 是否正常续约

certbot renew --dry-run

如果看到 “Congratulations, all renewals succeeded”,说明续约正常。

设置定时任务(自动续约)

编辑 crontab

crontab -e

添加以下行,每天凌晨 2 点自动检查并续约
Let’s Encrypt 续约后,需要重启 Web 服务器使证书生效。可以在 crontab 里加上:

Nginx

0 2 * * * certbot renew --quiet --deplpy-hook "systemctl reload nginx"
或者
0 2 * * * certbot renew --quiet --deplpy-hook "nginx -s reload"

Apache

0 2 * * * certbot renew --quiet --deploy-hook "systemctl reload httpd"

5. 验证证书是否生效

certbot certificates
或者
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com | openssl x509 -noout -dates

如果 Not After 日期更新,说明续约成功。✅

这样,你的 SSL 证书就会 自动续约,无需手动操作! 🚀


http://www.ppmy.cn/devtools/167574.html

相关文章

【PyCharm2024】一些好用的小功能

目录 一、全局查找及替换关键字 方法一: 方法二: 二、调整字体大小 三、调整Terminal的字体大小 四、改变行注释的斜体以及颜色 一、全局查找及替换关键字 编写程序时,通常想要在所有文件中查找或者替换某个词。 方法一: …

使用Fluent-bit将容器标准输入和输出的日志发送到Kafka

什么是fluent-bit? Fluent Bit 是一款开源的轻量级日志处理器与转发器,专为嵌入式系统、容器化环境及分布式架构设计。其核心功能包括日志收集、过滤、聚合和传输,支持多种输入源(如文件、系统日志、HTTP接口)和输出目…

PAT甲级(Advanced Level) Practice 1020 Tree Traversals

原题 1020 Tree Traversals - PAT (Advanced Level) Practice 题目大意 输入n表示二叉树的元素数量,再分别输入该树的后序和中序遍历,输出该树的层序遍历。 解题思路 想了很久也没想出来怎么直接把后序中序转化为层序,大家如果有直接转化…

微信小程序wx.request接口报错(errno: 600001, errMsg: “request:fail -2:net::ERR_FAILED“)

来看看报错 报错如下: 请求发送部分,代码如下: uni.request({url: self.serverUrl "/getRealName",method: GET,data: {"code": self.info.code,},header: {"Authorization": uni.getStorageSync(tokenHead) uni.getStorageSync(token)}}…

浏览器指纹——跨境业务

一、什么是浏览器指纹? 浏览器指纹(Browser Fingerprinting)是一种用于识别和追踪用户设备的技术。不同于 Cookie 或 IP 地址,浏览器指纹不会直接存储在用户设备上,而是通过收集用户的浏览器信息、字体、屏幕分辨率、…

Windows 11 安装Docker Desktop环境

1、确认CPU开启虚拟化 打开任务管理器,切换到“性能”选项卡,查看 CPU 信息。若“虚拟化”状态显示为“已启用”,则表示虚拟化已开启;若显示为“已禁用”,则需要在启动时进入 BIOS 开启虚拟化设置(若显示已…

【Quarkus】通过Quarkus集成后端服务示例

说明: REST资源接口(AuthResource)。REST资源实现类(AuthResourceImpl)。服务接口(AuthService)。服务实现类(AuthServiceImpl)。配置文件(application.prop…

基于 GEE 利用 Sentinel-1 双极化数据计算 SDWI 指数实现逐月提取水域面积

目录 1 SDWI 指数 2 研究方法及数据处理 3 完整代码 4 运行结果 1 SDWI 指数 Sentinel-1双极化数据SDWI水体提取指数公式:SDWI ln ⁡(10VVVH) Sentinel-1 Dual-Polarized Water Index (SDWI)水体信息提取方法对 Sentinel-1 双极化数据(VV 和 VH)之间水体信息…