编程技术分享平台

网站首页 > 技术教程 正文

Rocky Linux Nginx 自动更新免费 SSL,全流程实战

xnh888 2025-07-15 01:46:25 技术教程 3 ℃ 0 评论

Let’s Encrypt 是由非营利性组织 Internet Security Research Group (ISRG) 推动的免费、自动化、开源的证书颁发机构(CA)。

它采用 ACME 协议,让用户能够轻松获取和自动续期 TLS/SSL 证书,从而为网站提供 HTTPS 加密连接。

自 2016 年推出以来,Let’s Encrypt 已颁发数亿份证书,大幅降低了 HTTPS 部署门槛。


环境准备

  1. 确认系统版本

Rocky Linux 8/9,内核 4.18+ 或 5.14+,原生支持现代加密模块。

  1. 安装 EPEL 源

sudo dnf install -y epel-release

  1. 启用 EPEL 并更新

sudo dnf update -y


安装 Certbot 与 Nginx 插件

sudo dnf install -y certbot python3-certbot-nginx
  • certbot:Let’s Encrypt 官方客户端
  • python3-certbot-nginx:自动修改 Nginx 配置的插件

首次签发免费 SSL


  1. 执行一键签发命令

sudo certbot --nginx \ -d yourdomain.com \ -d www.yourdomain.com \ --email admin@yourdomain.com \ --agree-tos \ --redirect

  1. 命令说明

-d:指定域名,可多次使用

--email:接收证书更新提醒

--agree-tos:同意服务条款

--redirect:自动启用 HTTP→HTTPS 强制跳转

  1. 成功示例

浏览器访问 https://yourdomain.com 显示绿色小锁

Nginx 配置文件自动添加 ssl_certificatessl_certificate_key


自动续期配置

  1. 验证定时任务

sudo systemctl list-timers | grep certbot

默认每12小时执行一次续期检测

  1. 手动测试续期

sudo certbot renew --dry-run

输出 Congratulations, all renewals succeeded. 则配置生效




排查与优化

  • 端口未开放

sudo firewall-cmd --permanent --add-service=https

sudo firewall-cmd --reload

  • 域名未解析

确保 DNS A/AAAA 记录指向当前服务器公网 IP

  • SELinux 拒绝

sudo setenforce 0 # 测试期间

sudo setenforce 1 # 完成后恢复


验证与监控

  1. 检查到期时间

sudo certbot certificates

  1. 日志位置

/var/log/letsencrypt/letsencrypt.log

  1. 常见问题

Permission denied → 使用 sudo

Connection refused → 确认 Nginx 正常运行


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表