告别焦急:使用 acme 实现 ssl 免费证书到期自动更新

[复制链接]
发表于 2026-2-9 14:50:21 | 显示全部楼层 |阅读模式
媒介



  • 随着互联网安全的紧张性日益增长,SSL 证书已成为掩护用户数据和隐私的必备工具。然而,很多免费 SSL 证书的有效期仅为三个月,这就意味着网站管理员须要频仍地更新证书。频仍的手动更新不但耗时费力,还轻易由于疏忽而导致证书逾期,从而影响网站的正常运行。
  • 早先我须要每三个月手动更新证书,不但费时费力还轻易忘记,一个偶然的机会我发现了 ACME 这个工具,实现了 SSL 证书自动续期,让我告别焦急,解放双手,下面就让我来先容一下这个故意思的工具。
什么是 ACME 协议?



  • ACME(Automatic Certificate Management Environment)协议是由 Let’s Encrypt 推出的自动化 SSL 证书管理协议。通过 ACME 协议,网站管理员可以轻松地自动申请、更新和管理 SSL 证书,完全告别手动操纵的烦恼。
ACME 使用指南

安装

下载

  1. curl https://get.acme.sh | sh
  2. 或者
  3. wget -O - https://get.acme.sh | sh
复制代码


  • 由于acme.sh下载地点在国外,国内用户大概会出现下载超时无法安装的环境,下面先容通过从gitee上下载安装包的安装方式
使用 gitee 下载

  1. git clone https://gitee.com/neilpang/acme.sh.git
  2. cd acme.sh
复制代码
设置别名(非须要)



  • 修改 shell 设置文件中,比方 .bashrc、.bash_profile 或 .zshrc 等
  1. vim ~/.bashrc
  2. alias acme.sh=/root/acme.sh/acme.sh
  3. // 使更改立即生效
  4. source ~/.bashrc
复制代码
注册账号

  1. acme.sh --register-account -m email@expmple.com
复制代码
更改证书天生方式



  • acme被ZeroSSL收购,其默认的证书方式为ZeroSSL,但此证书天生时会携带邮箱,因此更换为letsencrypt。
  • 固然,也可以在天生证书时加一个–server参数来决定天生什么证书 --server letsencrypt。
天生证书



  • 使用 acme.sh --issue 下令天生证书,但天生证书的同时会举行域名的全部权的验证。 acme.sh 有两种方式验证:http 和 dns 验证。
  • 留意:假如须要天生泛域名(*.a.com)的证书,不能使用HTTP认证域名,须要改用DNS认证的方式,本文先容 dns 的方式。
  1. acme.sh  --issue  --dns -d mydomain.com \
  2. --yes-I-know-dns-manual-mode-enough-go-ahead-please
复制代码



  • 将上述txt剖析添加到域名管理面板中
重新天生证书并认证

  1. acme.sh  --renew   -d mydomain.com \
  2.   --yes-I-know-dns-manual-mode-enough-go-ahead-please
复制代码


安装 SSL 证书



  • 默认天生的证书都会放在安装目次下:~/.acme.sh/。然而,不要在服务器中直接引用该目次下的证书文件,也不要手动将证书文件拷贝到详细的 web 服务器中,由于手动拷贝会导致之后的证书更新流程无法完全自动化。
  • 精确的方式是使用 acme.sh 的安装证书下令,如许 acme.sh 会自动将证书文件拷贝到指定的目次中,并纪录下拷贝下令。在之后的自动更新过程中,acme.sh 会实验该拷贝步调,从而实现证书更新流程的完全自动化。
  1. acme.sh --install-cert -d xxx \
  2.                 --cert-file xxx \
  3.                 --key-file xxx \
  4.                 --fullchain-file xxx\
  5.                 --reloadcmd xxx  // 服务重新加载命令
复制代码



  • 由于我使用的是 docker 运行的 nginx ,因此我的重载下令是 docker container restart nginx,假如你直接使用 nginx 可以使用下令 service nginx force-reload。
使用 SSL 证书



  • 上述下令会将证书按照在我们的指定目次,接下来我们只须要在 web 服务器中使用即可。
  • 以 nginx 为例:
  1. server {
  2.   listen       443 ssl;
  3.   ssl_certificate      /etc/nginx/cert_file/fullchain.pem;
  4.   ssl_certificate_key  /etc/nginx/cert_file/key.pem;
  5.   # ...
  6. }
复制代码


  • 第一次设置须要重新实验一次 acme.sh --install-cert 下令重启 web 服务。
验证



  • 打开我们设置的网站,发现美满的绿色,逼迫症患者不再焦急。

设置证书自动续期



  • 假如我们使用 curl https://get.acme.sh | sh 方式安装,续期任务会自动在定时任务中设置;假如使用 gitee 则须要我们手动设置。
证书续期下令



  • ACME 支持使用 acme.sh --cron 下令举行证书续期。

自动续期



  • 为了实现自动续期,我们只须要将续期下令添加到定时任务即可。使用 crontab -e 添加定时任务。
  1. 设置每月执行一次的定时任务(每月第一天)
  2. 0 0 1 * * acme.sh --cron > /root/acme.sh/acme_cron.log 2>&1
复制代码
查察添加的定时任务 crontab -l


总结



  • 通过使用 acme.sh 工具,我们轻松实现 SSL 证书的自动申请和更新,不再须要为频仍的手动操纵而烦恼。这不但进步了工作服从,还确保了网站的安全性和稳固性。告别手动更新 SSL 证书的焦急。
个人简介

👋 你好,我是 Lorin 洛林,一位 Java 后端技能开发者!座右铭:Technology has the power to make the world a better place.
🚀 我对技能的热情是我不停学习和分享的动力。我的博客是一个关于Java生态体系、后端开发和最新技能趋势的地方。
🧠 作为一个 Java 后端技能爱好者,我不但热衷于探索语言的新特性和技能的深度,还热衷于分享我的见解和最佳实践。我信任知识的分享和社区互助可以资助我们共同发展。
💡 在我的博客上,你将找到关于Java核心概念、JVM 底层技能、常用框架如Spring和Mybatis 、MySQL等数据库管理、RabbitMQ、Rocketmq等消息中心件、性能优化等内容的深入文章。我也将分享一些编程本事息争决题目的方法,以资助你更好地把握Java编程。
🌐 我鼓励互动和创建社区,因此请留下你的题目、发起或主题哀求,让我知道你感爱好的内容。别的,我将分享最新的互联网和技能资讯,以确保你与技能天下的最新发展保持接洽。我等待与你一起在技能之路上进步,一起探究技能天下的无穷大概性。
📖 保持关注我的博客,让我们共同寻求技能杰出。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表