使用 win-acme 申请泛域名证书

win-acme 是一个可以在 Windows 系统上运行的免费、开源的证书申请工具,支持申请 Let's Encrypt 签发的 SSL/TLS 证书,包括泛域名证书。

本文详细讲解如何在 Windows 系统中使用 win-acme,基于 Cloudflare 申请泛域名证书。

为什么使用泛域名证书?

泛域名证书和单域名证书的区别在于它们可以保护的域名范围不同。单域名证书只能保护一个具体的域名,而泛域名证书则可以保护一个域名下的所有子域名。

举例来说,假设你有一个域名 example.com,单域名证书只能保护该域名,而泛域名证书可以保护 example.com 及其所有子域名,例如 blog.example.com、shop.example.com 等。

使用泛域名证书可以大大简化证书管理工作,特别是当你有多个子域名需要保护时。使用单域名证书需要为每个子域名分别申请和维护证书,而泛域名证书可以一次申请并保护所有子域名。

因此推荐使用泛域名证书。

win-acme 下载安装

本文使用的 win-acme 版本为:win-acme.v2.2.6.1571.x64.pluggable

  1. 下载 win-acme

    可以从 win-acme 官网(https://www.win-acme.com/)下载最新版本的工具,下载完成后解压到某个目录下。

    特别注意,由于要使用 cloudflare 插件,因此一定要下载 pluggable 版本。

    github 上最新版本地址:github release latest

    image-20231007093040579
  2. 下载 plugin.validation.dns.cloudflare

    该插件用于在申请证书时,使用 cloudflare API 进行证书验证。

    image-20231007093245979

创建 Cloudflare DNS

Cloudflare DNS 中添加域名解析。

如果域名解析服务是阿里、华为等服务商,需要将域名的解析切换到 Cloudflare,具体方法可以在网上搜索下,此处不赘述。

生成 Cloudflare API Token

我的个人资料 里创建 API 令牌。

image-20231007112322249

开始生成证书

  1. 使用 wacs --verbose 启动 win-acme

    使用 --verbose 启动时,可以查看 cloudflare 插件是否加载成功。

    image-20231007111038989
  2. 选择创建方式

    输入 m 使用完整选项的方式来创建。

    image-20231007111152620
  3. 选择指定域名的方式

    输入 2 来手动输入

    image-20231007111515006
  4. 手动输入泛域名

    泛域名的格式为 *.domain,例如:*.uamazing.cn

    image-20231007111638681
  5. 选择证书保存的方式

    输入 1 来将同一个域名保存到同一个文件中

    image-20231007111826853
  6. 选择 DNS 验证方式

    输入 6 使用 Cloudflare DNS 验证,然后会让你输入 Cloudflare DNS API Token。将上方中生成的 Token 复制到命令行中即可。

    image-20231007112020384
  7. 选择加密方式和保存位置

    image-20231007112456225
  8. 设置密码和其它保存位置

    都选择无

    image-20231007112603424
  9. 选择是否执行其它操作

    输入 3,表示不进行操作

    image-20231007112825338

    这一步输入完成后,就会在指定的目录里自动生成相应的证书。

  10. 添加任务计划定时自动更新证书

    若要添加任务计划自动更新证书,需要使用管理员身份启动命令行,否则会报如下错误:

    image-20231007123855656

参考

  1. cloudflare validation