Ubuntu 22.04.4 LTS + certbot 做自动续签SSL证书(2024-11-14亲测)

certbot 做自动续签SSL证书

为了为您的域名 csbst.xyz 设置 SSL 证书并启用 HTTPS,您可以使用 Certbot。Certbot 是一个易于使用的客户端,它可以自动获取和安装 SSL/TLS 证书,以便使您的网站支持 HTTPS。

以下是在您的服务器上使用 Certbot 为 csbst.xyz 域名设置 SSL 证书的步骤:

  1. 确保您的服务器上已经安装了 Certbot 和 Nginx。如果没有安装,您可以使用以下命令安装它们:
bash 复制代码
sudo apt update
sudo apt install certbot python3-certbot-nginx
  1. 使用 Certbot 获取 SSL 证书并自动配置 Nginx:
bash 复制代码
sudo certbot --nginx -d csbst.xyz

Certbot 将会与 Nginx 集成,并自动配置您的网站以使用 HTTPS。在运行上述命令时,Certbot 可能会提示您选择一个或多个域名,并询问您是否希望将所有流量重定向到 HTTPS。根据您的选择,Certbot 会相应地更新 Nginx 配置文件。

  1. Certbot 安装证书后,您可以通过访问 https://csbst.xyz 来验证您的网站是否已启用 HTTPS。

  2. Certbot 会设置一个定时任务,定期检查您的证书是否需要更新。您可以通过运行以下命令来查看 Certbot 的定时任务:

bash 复制代码
sudo systemctl status certbot.timer
  1. 如果您需要手动更新证书,可以使用以下命令:
bash 复制代码
sudo certbot renew --dry-run

该命令会测试证书更新过程,但不会实际更新证书。如果您确定需要更新证书,可以去掉 --dry-run 选项。

请注意,上述步骤假设您已经拥有 csbst.xyz 域名的 DNS 记录,并且您的服务器已经配置了 Nginx 来托管该域名。如果您在执行上述步骤时遇到任何问题,请提供详细信息,以便我能够提供更具体的帮助。

自动续签详解

根据您提供的定时器文件 /lib/systemd/system/certbot.timer 和服务文件 /lib/systemd/system/certbot.service,我们可以看到 Certbot 被配置为每天运行两次,分别在午夜和中午 12 点。每次运行时,Certbot 会尝试更新所有已安装的证书。

定时器文件 /lib/systemd/system/certbot.timer 的内容如下:

ini 复制代码
[Unit]
Description=Run certbot twice daily

[Timer]
OnCalendar=*-*-* 00,12:00:00
RandomizedDelaySec=43200
Persistent=true

[Install]
WantedBy=timers.target

这个定时器会在每天的午夜和中午 12 点触发,RandomizedDelaySec=43200 表示在每次触发的时间上加上一个随机延迟,最多延迟 12 小时(43200 秒)。Persistent=true 表示即使系统时间改变,定时器也会保持其计划。

服务文件 /lib/systemd/system/certbot.service 的内容如下:

ini 复制代码
[Unit]
Description=Certbot
Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html
Documentation=https://certbot.eff.org/docs

[Service]
Type=oneshot
ExecStart=/usr/bin/certbot -q renew
PrivateTmp=true

这个服务文件定义了 Certbot 服务的行为。Type=oneshot 表示服务只会运行一次,然后立即停止。ExecStart=/usr/bin/certbot -q renew 是服务启动时执行的命令,它会以静默模式运行 Certbot 的 renew 命令,尝试更新所有证书。PrivateTmp=true 表示为服务创建一个私有的临时文件系统,以增强安全性。

要管理这个定时器和服务,您可以使用以下命令:

  • 启动定时器:

    bash 复制代码
    sudo systemctl start certbot.timer
  • 停止定时器:

    bash 复制代码
    sudo systemctl stop certbot.timer
  • 启动服务:

    bash 复制代码
    sudo systemctl start certbot.service
  • 停止服务:

    bash 复制代码
    sudo systemctl stop certbot.service
  • 检查定时器的状态:

    bash 复制代码
    sudo systemctl status certbot.timer
  • 检查服务的状态:

    bash 复制代码
    sudo systemctl status certbot.service
  • 启用定时器,以便在系统启动时自动启动:

    bash 复制代码
    sudo systemctl enable certbot.timer
  • 禁用定时器,以便在系统启动时不自动启动:

    bash 复制代码
    sudo systemctl disable certbot.timer

确保定时器和服务已经启用,并且按照预期运行,这样您的 SSL 证书就可以定期更新,确保您的网站始终使用最新的证书。

要查看 Certbot 自动续签的日志,您需要查看 Certbot 的日志文件。Certbot 通常会将日志信息记录到 /var/log/letsencrypt/ 目录下的文件中。您可以使用 lesscattail 等命令来查看这些日志文件。

以下是一些查看 Certbot 日志的命令:

  1. 使用 less 命令查看最新的日志:
bash 复制代码
sudo less /var/log/letsencrypt/letsencrypt.log

less 命令允许您在终端中向上或向下滚动日志文件,并使用键盘快捷键进行导航。

  1. 使用 cat 命令查看整个日志文件:
bash 复制代码
sudo cat /var/log/letsencrypt/letsencrypt.log

cat 命令会一次性显示整个日志文件的内容,这可能不适合查看非常大的日志文件。

  1. 使用 tail 命令查看日志文件的最后几行:
bash 复制代码
sudo tail -n 100 /var/log/letsencrypt/letsencrypt.log

上面的命令会显示日志文件的最后 100 行。您可以根据需要调整 -n 参数后面的数字来查看更多或更少的行。

如果您需要查看特定日期或时间段的日志,可以使用 grep 命令结合 date 命令来过滤日志。例如,查看今天生成的日志:

bash 复制代码
sudo grep "$(date +'%Y-%m-%d')" /var/log/letsencrypt/letsencrypt.log

这将显示包含当前日期的日志行。

请根据您的具体需求选择合适的命令来查看 Certbot 的自动续签日志。

相关推荐
yqcoder41 分钟前
什么是 Math 对象
网络·网络协议·udp
白帽小丑9 小时前
# 一次 MySQL DELETE 误操作的数据恢复尝试实录
数据库·mysql
Quincy_Freak11 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
2601_9626838913 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
酱学编程14 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
shushangyun_15 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
华山令狐虫16 小时前
DBAPI AI 写 SQL:支持动态 SQL 与参数占位符,自然语言一键生成
数据库·人工智能·sql·dbapi
IvorySQL16 小时前
PG 技术日报|2026-07-04
数据库·人工智能·postgresql·开源
Hoxy.R16 小时前
KingbaseES读写分离高可用集群扩容、备库重建与故障切换实战
运维·数据库
IvorySQL17 小时前
IvorySQL HTAP 实时湖仓接入引擎
数据库·postgresql·开源·htap·ivorysql