使用acme生成免费https泛域名证书(通配符证书)

0、引言

目前国内主流域名证书的申请还是通过各大云厂商、域名厂商来做申请,但是各大厂商主要针对单域名证书提供了免费申请通道,针对涉及多子系统的项目可能需要泛域名证书(即通配符证书),而部分预算有限或者有临时使用需求的,就可能涉及需要申请免费泛域名证书,今天主要介绍通过开源项目acme.sh生成免费泛域名证书的方法。

1、acme.sh 项目介绍

1.1 项目概况

acme.sh 是一个纯 Shell 脚本实现的 ACME 协议客户端,由 ZeroSSL 官方维护,主打轻量、无依赖、全自动,是免费 SSL 证书管理的标杆工具。

项目地址:https://github.com/acmesh-official/acme.sh

核心定位:免费 SSL/TLS 证书签发、续期、部署全流程自动化工具

1.2 核心优势

  • 纯 Shell 编写:无 Python/Node.js 等依赖,兼容所有 Unix 系统
  • 多 CA 支持:默认 ZeroSSL(权威 CA),兼容 Let's Encrypt、BuyPass 等,具体清单如下图
  • 泛域名专属:原生支持通配符证书(*.domain.com),仅需 DNS 验证
  • 全自动续期:内置 cron 任务,证书到期前自动续签,永久有效
  • 全格式输出:一键生成 .cer/.crt/.pem 等 Nginx 直接可用格式

2、域名证书分类

acme.sh支持生成单域名证书和泛域名证书

2.1 单域名证书(Single Domain)

定义:仅绑定一个精确域名,如 www.example.com

限制:仅能保护单个域名,子域名需单独申请

适用:仅单个站点,无多子域名需求

2.2 泛域名证书(Wildcard / 通配符证书)

定义:绑定主域名 + 所有子域名,格式为 *.example.com

优势:一张证书覆盖所有子域名(如 a.example.comb.example.com),一劳永逸

关键:仅支持 DNS-01 验证(HTTP 验证无法覆盖通配符)

适用:多子域名站点(如 SaaS、企业官网、测试环境)

2.3 证书核心区别

类型 域名范围 验证方式 成本
单域名 单个精确域名 https/DNS 免费
泛域名 主域名 + 所有子域名 仅 DNS 免费(acme.sh+ZeroSSL)

3、泛域名证书生成步骤

1、环境准备

服务器:Linux(CentOS/Debian/Ubuntu)或者本机电脑

域名:已备案域名(如 example.com

DNS 服务商:阿里云 / 腾讯云 / Cloudflare(支持 API 自动添加 TXT 记录)

这里我以阿里云DNS服务商为例,具体生成时根据你自己的DNS服务商来配置。

2、安装 acme.sh(四种方式,选择其一即可)

(1)curl指令安装

shell 复制代码
curl https://get.acme.sh | sh -s email=你的邮箱(用于注册)

(2)wget指令安装

shell 复制代码
wget -O -  https://get.acme.sh | sh -s email=你的邮箱
```shell
(3)git指令安装

git clone https://github.com/acmesh-official/acme.sh.git

cd ./acme.sh

./acme.sh --install -m 你的邮箱

复制代码
(4)手动下载
```shell
# 手动从github下载该项目,然后进入主目录,执行安装指令
./acme.sh --install -m 你的邮箱

2、验证,输出版本号则说明安装成功

shell 复制代码
acme.sh --version

3、因为泛域名证书需要通过DNS验证,我们需要先申请DNS的AccessKey,这里以阿里云为例,登录阿里云控制台后,点击头像

再点击"AccessKey"选项,初步访问时会提示你建议使用RAM用户来获取AccessKey,云账号权限相对较大,从更安全的角度,大家可以点击"使用RAM用户"来创建获取,这里为了演示方便先直接用云账号

点击"创建AccessKey"之后就会生成出来,将对应的AccessKey和Secret保存下来

4、配置环境变量

shell 复制代码
export Ali_Key="你的阿里云AccessKey"
export Ali_Secret="你的阿里云Secret"

注意,这里如果是其他云平台,环境变量名称及后续的dns服务商名称会不一样,具体可以参考:https://github.com/acmesh-official/acme.sh/wiki/dnsapi2

这里我将国内几家常用的列举出来:

厂商 环境变量名称 dns参数名称
阿里云 Ali_Key、Ali_Secret dns_ali
腾讯云 Tencent_SecretId、Tencent_SecretKey dns_tencent
华为云 HUAWEICLOUD_Username、HUAWEICLOUD_Password、HUAWEICLOUD_DomainName dns_huaweicloud
百度云 Baidu_AK、Baidu_SK dns_baidu

5、签发主域名 + 泛域名证书(ZeroSSL 为默认CA)

shell 复制代码
acme.sh --issue \
  -d example.com \          # 主域名
  -d "*.example.com" \      # 泛域名(通配符)
  --dns dns_ali \           # DNS 服务商(阿里云)
  --dnssleep 120             # 等待 DNS 解析生效(秒)

关键说明:

-d 必须同时指定主域名 + 泛域名

--dns 选择对应服务商

--log 如果执行失败,可以打印日志查看具体保存信息

证书默认保存路径:~/.acme.sh/example.com/,mac电脑在/Users/wuhanxue/.acme.sh/example.com/下

执行后会生成对应的证书文件

如果还需要其他格式的,可以通过acme.sh --install-cert指令来生成

shell 复制代码
./acme.sh --install-cert -d gafz.com.cn \
--cert-file 指定路径/ssl/xxx.com.cn.cer \
--key-file 指定路径/ssl/xxx.com.cn.key \
--fullchain-file 指定路径/ssl/xxx.com.cn.pem \
--ca-file 指定路径/ssl/xxx.com.cn.ca.crt

综上所诉,就可以把证书生成出来,直接部署使用即可。

4、拓展功能

此外,acme.sh还支持添加cron任务,实现证书到期自动续约,无需人为操作,或者可以通过acme.sh --renew -d xxx.com指令来手动续约

5、ZeroSSL 证书安全性解析

acme.sh生成的证书默认CA机构是ZeroSSL,那ZeroSSL颁发的证书安全性怎么样呢,是否可靠,我们首先来了解ZeroSSL。

5.1 ZeroSSL 是什么

ZeroSSL 是国际权威 CA(证书颁发机构),成立于 2018 年,证书被 99.9% 浏览器 / 操作系统信任。

官方网站:https://zerossl.com

核心资质:浏览器根证书库内置,与 Let's Encrypt 同级权威。

5.2 证书安全性核心要点

1、证书由 ZeroSSL 直接签发,包含完整证书链(根 CA → 中间 CA → 域名证书)

浏览器 / 手机 / 电脑默认信任,访问站点显示绿锁,无 "不安全" 警告

2、密钥算法:默认 RSA-2048(金融级安全,抗暴力破解)

证书有效期:90 天(短周期降低泄露风险,自动续期无感知)

传输协议:支持 TLS 1.2/1.3(最新安全协议,防止中间人攻击)

3、泛域名证书强制 DNS-01 验证:需在域名 DNS 中添加专属 TXT 记录,证明域名所有权

无域名控制权无法签发,杜绝伪造证书风险

综上所诉,ZeroSSL颁发的免费证书具备金融级安全加密,针对个人网站、测试环境或者临时使用完全足够,甚至经费有限的企业配合web防火墙使用也足够支撑。

5.3 如何验证证书背书

查看证书签发机构(确认ZeroSSL背书)

shell 复制代码
openssl x509 -in /etc/nginx/ssl/example.com.crt -noout -issuer

输出包含 ZeroSSL 即表示正规 CA 背书有效。

此外部署之后,我们在浏览器访问域名服务也能看到证书的相关信息

6、总结

通过 acme.sh + ZeroSSL,你可以零成本、5 分钟内生成带权威 CA 背书的泛域名证书,一张证书覆盖所有子域名,全自动续期,安全可靠。

相关推荐
Bat U9 小时前
JavaEE|网络原理TCP/IP
网络·网络协议·tcp/ip
wljt9 小时前
为什么要使用Spring Cloud,而不是HTTP直接调用接口?
spring·http·spring cloud
冰冰的米咖9 小时前
20260521网络配置-NAT Server实现外网访问内网服务
网络·网络协议·智能路由器
HMS工业网络10 小时前
Cosy通过USB连接PLC时如何排查USB over IP故障
网络·网络协议·tcp/ip
小船跨境10 小时前
如何验证代理IP纯净度?2026年IP检测与优化指南
网络·网络协议·tcp/ip
lolo大魔王10 小时前
Go 语言 HTTP 协议与 RESTful API 实训全解(理论 + 实战 + 规范)
http·golang·restful
念越10 小时前
UDP 与 TCP 协议详解
网络协议·tcp/ip·udp·tcp
路由侠内网穿透.10 小时前
本地部署静态网站托管平台 Netlify 并实现外部访问(Windows 版本)
网络·网络协议
Patrick_Wilson10 小时前
CLI 工具突然变慢了?别急着怀疑网络,按这四步排查
网络协议·性能优化·命令行