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

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

经验文章nimo972025-06-30 21:40:471A+A-

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 正常运行


点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7