您的当前位置:首页>全部文章>文章详情

【服务器】使用 acme 实现 ssl 免费证书到期自动更新

https://cloud.tencent.com/developer/article/2443184发表于:2025-04-18 12:20:11浏览:29次TAG: #acme #ssl #网络 #服务器

前言

  • 随着互联网安全的重要性日益增加,SSL 证书已成为保护用户数据和隐私的必备工具。然而,许多免费 SSL 证书的有效期仅为三个月,这就意味着网站管理员需要频繁地更新证书。频繁的手动更新不仅耗时费力,还容易因为疏忽而导致证书过期,从而影响网站的正常运行。
  • 起初我需要每三个月手动更新证书,不仅费时费力还容易忘记,一个偶然的机会我发现了 ACME 这个工具,实现了 SSL 证书自动续期,让我告别焦虑,解放双手,下面就让我来介绍一下这个有意思的工具。

什么是 ACME 协议?

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

ACME 使用指南

安装

下载

curl https://get.acme.sh | sh

或者

wget -O - https://get.acme.sh | sh
  • 由于acme.sh下载地址在国外,国内用户可能会出现下载超时无法安装的情况,下面介绍通过从gitee上下载安装包的安装方式

使用 gitee 下载

git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh

设置别名(非必要)

  • 修改 shell 配置文件中,例如 .bashrc、.bash_profile 或 .zshrc 等
 
 
vim ~/.bashrc
alias acme.sh=/root/acme.sh/acme.sh
// 使更改立即生效
source ~/.bashrc

注册账号

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 的方式。
 
 
acme.sh  --issue  --dns -d mydomain.com \
 --yes-I-know-dns-manual-mode-enough-go-ahead-please
  • 将上述txt解析添加到域名管理面板中

重新生成证书并认证

 acme.sh  --renew   -d mydomain.com \
  --yes-I-know-dns-manual-mode-enough-go-ahead-please
安装 SSL 证书
  • 默认生成的证书都会放在安装目录下:~/.acme.sh/。然而,不要在服务器中直接引用该目录下的证书文件,也不要手动将证书文件拷贝到具体的 web 服务器中,因为手动拷贝会导致之后的证书更新流程无法完全自动化。
  • 正确的方式是使用 acme.sh 的安装证书命令,这样 acme.sh 会自动将证书文件拷贝到指定的目录中,并记录下拷贝命令。在之后的自动更新过程中,acme.sh 会执行该拷贝步骤,从而实现证书更新流程的完全自动化。
 
 
acme.sh --install-cert -d xxx \
		--cert-file xxx \
		--key-file xxx \
		--fullchain-file xxx\
		--reloadcmd xxx  // 服务重新加载命令
  • 由于我使用的是 docker 运行的 nginx ,因此我的重载命令是 docker container restart nginx,如果你直接使用 nginx 可以使用命令 service nginx force-reload

使用 SSL 证书

  • 上述命令会将证书按照在我们的指定目录,接下来我们只需要在 web 服务器中使用即可。
  • 以 nginx 为例:
 
 
server {
  listen       443 ssl;
  ssl_certificate      /etc/nginx/cert_file/fullchain.pem;
  ssl_certificate_key  /etc/nginx/cert_file/key.pem;
  # ...
}
  • 第一次配置需要重新执行一次 acme.sh --install-cert 命令重启 web 服务。

验证

  • 打开我们配置的网站,发现完美的绿色,强迫症患者不再焦虑。
 

配置证书自动续期

  • 如果我们使用 curl https://get.acme.sh | sh 方式安装,续期任务会自动在定时任务中配置;如果使用 gitee 则需要我们手动配置。

证书续期命令

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

自动续期

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

查看添加的定时任务 crontab -l

总结

  • 通过使用 acme.sh 工具,我们轻松实现 SSL 证书的自动申请和更新,不再需要为频繁的手动操作而烦恼。这不仅提高了工作效率,还确保了网站的安全性和稳定性。告别手动更新 SSL 证书的焦虑。

原文链接https://cloud.tencent.com/developer/article/2443184

猜你喜欢

【服务器】域名与服务器负载均衡技术学习总结
域名到站点的负载均衡技术学习总结目录域名到站点的负载均衡技术一览一、问题域二、上面那些名词都是什么概念三、接入层技术演进【裸奔时代单机架构】【DNS轮询】【nginx】【高可用方案keepalived】【垂直扩容方案 lvs/f5】【水平扩容方案DNS轮询】一、问题域nginx、lvs、keepalived、f5、DNS轮询,往往讨论的是接入层的这样几个问题:1)可用性:任何一台机器挂了,服务受不受影响2)扩展性:能否通过增加机器,扩充系统的性能3)反向代理+负载均衡:请求是否均匀分摊到后端的操
发表于:2023-12-06 浏览:393 TAG:
【网络】如何下载 Apache + PHP + Mysql 集成安装环境并结合内网穿透工具实现公网访问内网服务
文章目录📋前言一. WampServer下载安装二. WampServer启动三. 安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址四. 固定公网地址访问📝结语📋前言Wamp 是一个 Windows系统下的  Apache + PHP + Mysql 集成安装环境,是一组常用来搭建动态网站
发表于:2023-11-30 浏览:734 TAG:
【网络】请求头中user-Agent详解
在Web开发中,我们经常会遇到需要根据不同的用户设备或浏览器类型来进行特定处理的情况。为了达到这样的目的,我们可以使用User-Agent这个HTTP头信息字段来识别用户的设备和浏览器。本篇文章将介绍User-Agent的基本概念、用法以及在实际开发中的一些应用场景。User-Agent是HTTP请求头部的一个字段,用来标识发起请求的用户代理信息。它通常包含了用户的浏览器类型、操作系统、设备型号等信息。通过解析User-Agent,我们可以根据具体情况做出相应的处理,比如为不同的设备或浏览器提供
发表于:2024-04-24 浏览:281 TAG:
【网络】网站被插入虚假恶意链接怎么办
在当前的电信和网络环境中,诈骗案件频发,许多受害者不幸上当,主要原因是他们点击了诈骗者发送的假链接。这些诈骗网站经常模仿真实网站的外观,使人难以分辨真伪。那么,我们应如何鉴别这些诈骗链接呢?下面介绍五种方法来帮助您辨识和防范假冒的网址链接:域名检查诈骗者倾向于使用一串随机字母和数字作为网站的域名,以避开自动化的文字识别和网站封锁,这些域名常常看起来毫无规律,像是乱码。验证域名的注册信息正规官方网站的域名必须经过严格的注册过程,这些信息通常位于网页的底部。我们可以利用工信部域名信息备案管理系统进行
发表于:2024-03-10 浏览:312 TAG:
【服务器】使用 acme 实现 ssl 免费证书到期自动更新
随着互联网安全的重要性日益增加,SSL 证书已成为保护用户数据和隐私的必备工具。然而,许多免费 SSL 证书的有效期仅为三个月,这就意味着网站管理员需要频繁地更新证书。频繁的手动更新不仅耗时费力,还容易因为疏忽而导致证书过期,从而影响网站的正常运行。
发表于:2025-04-18 浏览:30 TAG: #acme #ssl #网络 #服务器