自动注册域名的成功案例有哪些(免费拿泛域名证书Windows 全流程申请自动续期一步到位)

自动注册域名的成功案例有哪些(免费拿泛域名证书Windows 全流程申请自动续期一步到位)

adminqwq 2025-11-30 主营业务 1 次浏览 0个评论

很多朋友私信我:

“哥,我这边都是 Windows 服务器,怎么优雅搞 Let’s Encrypt 免费证书?还能自动续期那种。”

其实方案很多,大致分两类:

绕过 Windows,伪装成 Linux 环境:用 WSL2,在 WSL 里直接按 Linux 教程走(推荐,兼容性最好)用 Git for Windows / MSYS2 / Cygwin 这类类 Unix 环境用 Docker 跑一个 Linux 容器,在容器内用 acme.sh / certbot 等工具原生 Windows 方案:4. 用 win-acme (今天重点讲它)

前面 1–3 都偏向「把 Windows 伪装成 Linux」来搞证书,如果你更熟悉 Linux,可以参考这篇: 免费拿到泛域名证书:从申请到自动续期完整教程

本文只讲:原生 Windows + DNSPod + win-acme,全自动申请和续期泛域名证书。用完你会发现,Windows 上玩证书一点不比 Linux 麻烦。

一、准备工具:下载 win-acme

win-acme 官网: win-acme

下载后,放到一个固定目录,比如:

D:\work\tools\win-acme

然后解压。后面会用到里面的 wacs.exe 程序。

二、写两个 PowerShell 脚本:对接 DNSPod API

目标是实现:

win-acme 校验域名时,调用脚本 ➜ 自动到 DNSPod 添加 TXT 记录验证完成后,再调用脚本 ➜ 自动删除 TXT 记录2.1 创建 DNS 记录脚本:dnspod_create.ps1

在 D:\work\tools\Scripts\ 目录下(路径你可以自定义)新建:

dnspod_create.ps1

内容如下(记得把域名改成你自己的):

param( [string]$Identifier, # win-acme 会传入 _acme-challenge.example.com [string]$Token # win-acme 会传入要写入 TXT 的值)# 配置:DNS 主域名(改成你的域名)$Domain = "xxx.cn"# DNSPod Token 文件(内容格式:ID,Token)$TokenFile = "D:\work\tools\win-acme\Secrets\dnspod_token.txt"if (!(Test-Path $TokenFile)) { Write-Error "Token file not found: $TokenFile" exit 1}$LoginToken = (Get-Content $TokenFile -Raw).Trim()# 这里简单处理:统一用 _acme-challenge 作为子域$Sub = "_acme-challenge"Write-Host "创建 TXT 记录:主域: $Domain, 子域: $Sub, 内容: $Token, 验证域名: $Identifier"# 调 DNSPod HTTP API 创建 TXT 记录$api = "https://dnsapi.cn/Record.Create"$body = @{ login_token = $LoginToken format = "json" domain = $Domain sub_domain = $Sub record_type = "TXT" record_line = "默认" value = $Token ttl = 600}$res = Invoke-RestMethod -Uri $api -Method Post -Body $body -ContentType "application/x-www-form-urlencoded"if ($null -eq $res -or $res.status.code -ne "1") { Write-Error "Create record failed: $($res.status.message)" exit 1}$recordId = $res.record.id# 保存 recordId,按 Identifier 命名,方便删除$storeDir = "D:\work\tools\win-acme\dnspod_records"if (!(Test-Path $storeDir)) { New-Item -Path $storeDir -ItemType Directory | Out-Null}$storeFile = Join-Path $storeDir ([Uri]::EscapeDataString($Identifier) + ".txt")Set-Content -Path $storeFile -Value $recordId -Encoding utf8# 等待 DNS 生效(视自己 DNS 情况可调大/调小)Start-Sleep -Seconds 20Write-Output $recordId配置 DNSPod Token 文件登录 DNSPod:DNSPod-免费智能DNS解析服务商-电信_网通_教育网,智能DNS-烟台帝思普网络科技有限公司找到 API Token(控制台里能看到)按 ID,Token 的格式写入文件,例如:123456,abcdefghijklmn1234567890

保存到:

D:\work\tools\win-acme\Secrets\dnspod_token.txt

这个 Token 相当于账号密码,一定要妥善保管,不要泄露。

免费拿泛域名证书(Windows 全流程):申请、自动续期一步到位

2.2 删除 DNS 记录脚本:dnspod_delete.ps1

同目录下新建:

dnspod_delete.ps1

内容如下:

param( [string]$Identifier, [string]$UnusedToken # win-acme 会传入第二个参数,这里占位即可)$Domain = "xxx.cn" # 改成你自己的顶级域名$TokenFile = "D:\work\tools\win-acme\Secrets\dnspod_token.txt"if (!(Test-Path $TokenFile)) { Write-Error "Token file not found: $TokenFile" exit 1}$LoginToken = (Get-Content $TokenFile -Raw).Trim()$storeDir = "D:\work\tools\win-acme\dnspod_records"$storeFile = Join-Path $storeDir ([Uri]::EscapeDataString($Identifier) + ".txt")if (!(Test-Path $storeFile)) { Write-Output "No record file found for $Identifier, skipping delete." exit 0}$recordId = (Get-Content $storeFile -Raw).Trim()$api = "https://dnsapi.cn/Record.Remove"$body = @{ login_token = $LoginToken format = "json" domain = $Domain record_id = $recordId}$res = Invoke-RestMethod -Uri $api -Method Post -Body $body -ContentType "application/x-www-form-urlencoded"if ($null -eq $res -or $res.status.code -ne "1") { Write-Error "Delete record failed: $($res.status.message)" exit 1}Remove-Item $storeFile -ForceWrite-Output "Deleted $recordId"

到这里,DNS 自动添加 / 删除 TXT 记录的能力就准备好了。

三、使用 win-acme 申请泛域名证书3.1 启动 win-acme

双击 wacs.exe,会弹出一个控制台界面。

第一步选:

N ➜ Create certificate (default settings)3.2 选择手动输入域名

选择:

Manual input

然后按你的需求输入域名,规则如下:

只申请主域名:example.com主域名 + 泛域名(常用):example.com,*.example.com多个不同域名:example.com,example.org,*.example.org

注意:

多个域名用英文逗号 , 分隔不要加引号泛域名必须是 *.example.com 这种格式

示例输入(整行):

Host: example.com,*.example.com

免费拿泛域名证书(Windows 全流程):申请、自动续期一步到位

免费拿泛域名证书(Windows 全流程):申请、自动续期一步到位

3.3 验证方式选择:必须用 DNS-01

泛域名(*.xxx.cn)只能使用 DNS-01 验证(TXT 记录),HTTP-01(放文件的那种)不支持泛域名。

在 win-acme 的选项里,跟 DNS-01 有关的一般有:

6: [dns] Create verification records manually自己登录 DNS 控制台,手工添加 TXT,不能自动续期,不推荐长期用7: [dns] Create verification records with acme-dns需要自己额外部署 acme-dns,有一定成本8: [dns] Create verification records with your own script使用「自定义脚本」调用 DNSPod 等 API,支持自动续期

这里我们选:8

免费拿泛域名证书(Windows 全流程):申请、自动续期一步到位

3.4 配置 DNS 创建脚本(Create Script)

提示:DnsCreateScript:

输入 PowerShell 路径:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

回车。

3.5 配置 DNS 删除脚本方式

提示:How to delete records after validation:

选择:

1 ➜ 同样使用 PowerShell3.6 配置 DNS 创建脚本参数

提示:DnsCreateScriptArguments:

输入(改成你的脚本路径):

-ExecutionPolicy Bypass -File "D:\work\tools\Scripts\dnspod_create.ps1" "{Identifier}" "{Token}"3.7 配置 DNS 删除脚本参数

提示:DnsDeleteScriptArguments:

输入:

-ExecutionPolicy Bypass -File "D:\work\tools\Scripts\dnspod_delete.ps1" "{Identifier}" "{Token}"

免费拿泛域名证书(Windows 全流程):申请、自动续期一步到位

3.8 并行执行策略

提示:Enable parallel execution?

选项说明:

1: Run everything one by one含义:一次只处理一个验证动作(串行)。安全且简单,适合脚本读写共享文件(比如把 recordId 存到某个固定文件名)时使用。若你没有为并发做特殊处理,就选 1。2: Allow multiple instances of the script to run at the same time含义:允许同一脚本被多个进程同时运行(并发)。适合脚本是无状态或每个调用使用独立临时文件/参数,不会互相覆盖的情况。3: Allow multiple records to be validated at the same time含义:允许在同一时间为同一域名创建多个不同的 TXT 记录(有些 DNS 提供商或策略下可能会造成冲突)。通常不需要选此项,除非你知道需要同时为多个不同标识符并行验证。4: Allow both modes of parallelism含义:同时允许 2 和 3。很少需要。

我们这里选:

13.9 证书保存方式

提示:How would you like to store the certificate?

常用选项:

IIS Central Certificate Store (.pfx per host)适合大规模 IIS 环境,使用 Central Certificate StorePEM encoded files (Apache, nginx, etc.)导出 cert.pem / chain.pem / privkey.pem,最通用,很多程序都支持PFX archive导出 PFX 文件,方便导入 Windows 证书管理器或其它系统Windows Certificate Store (Local Computer)直接安装到本地计算机证书库,IIS 可直接使用(需要管理员权限运行)No (additional) store steps

演示我选择:

2 ➜ 输出 PEM 文件,兼容性最好3.10 指定证书导出路径

提示:File path:

比如填:

D:\work\tools\win-acme

win-acme 会在这里生成对应的证书文件夹和文件。

3.11 是否给私钥加密

提示:Choose from the menu:

我这里选:

1 ➜ 不给证书加密(看你自己安全策略来定)免费拿泛域名证书(Windows 全流程):申请、自动续期一步到位

3.12 安装(部署)步骤选择

提示:Which installation step should run first?

部分说明:

Create or update bindings in IIS自动把证书绑定到 IIS 网站(需要管理员权限)Start external script or program申请完证书后,调用你自己的脚本(比如复制证书、重启服务、上传到网关等等)No (additional) installation steps不做额外动作,只生成证书文件,后续你自己手动配置

演示我选择:

3 ➜ No (additional) installation steps

也就是:只让 win-acme 负责「申请 + 续期 + 导出证书」,部署到具体 web 服务由你自己控制。

最终执行成功如下:

免费拿泛域名证书(Windows 全流程):申请、自动续期一步到位

再看看证书,生成在设置的D:\work\tools\win-acme下:

免费拿泛域名证书(Windows 全流程):申请、自动续期一步到位

四、证书自动续期:加入计划任务就躺平了

win-acme 会记录下你的证书配置,后续只要执行:

wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org/"

就会自动检查、快到期就续期。

建议使用绝对路径,比如:

D:\work\tools\win-acme\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org/"4.1 放入 Windows 计划任务打开「任务计划程序」创建基本任务:触发器:每天一次 / 每周几次都行(Let’s Encrypt 本身控制频率,安全)操作:启动程序程序/脚本:D:\work\tools\win-acme\wacs.exe参数:--renew --baseuri "https://acme-v02.api.letsencrypt.org/"选择「使用最高权限运行」(建议)

从此之后,证书就会自动续期,真正做到忘掉它的存在。

转载请注明来自海坡下载,本文标题:《自动注册域名的成功案例有哪些(免费拿泛域名证书Windows 全流程申请自动续期一步到位)》

每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,1人围观)参与讨论

还没有评论,来说两句吧...