EasyCert 使用教程 — 小白保姆级指南
EasyCert 是什么? 一个带图形界面的小工具,帮你免费申请 Let's Encrypt 的 SSL 证书。你只需填几个信息、点一下按钮,证书就自动申请好了。
📖 目录
1. 准备工作
1.1 你需要准备的东西
| 项目 | 说明 | 必须 |
|---|---|---|
| 一台 Windows 电脑 | 用来运行这个工具 | ✅ |
| 一个域名 | 你已经购买并拥有了域名,比如 example.com | ✅ |
| 域名 DNS 托管 | 你的域名用的是哪家 DNS 服务商(Cloudflare、阿里云等) | ✅ |
| DNS 管理权限 | 能在 DNS 服务商那里添加/删除解析记录 | ✅ |
1.2 什么是 DNS 托管?
DNS 托管就是你的域名在哪里管理解析记录。登录你的域名注册商(比如阿里云、腾讯云、GoDaddy),找到"DNS 解析"或"域名管理"页面。
💡 简单判断:打开 https://who.is ,输入你的域名。看 Nameserver 部分:
显示
ns1.cloudflare.com→ DNS 托管在 Cloudflare显示
dns9.hichina.com→ DNS 托管在 阿里云显示
f1g1ns1.dnspod.net→ DNS 托管在 DNSPod(腾讯云)
2. 下载和启动程序
2.1 下载程序
⬇️ 下载地址:点此下载 EasyCert.exe
🔑 解压密码:fvij
如果下载链接失效,请联系开发者获取最新版本。
2.2 启动程序
C:\ssl-tool\EasyCert.exe
⚠️ 建议路径不要有中文,避免某些系统兼容问题。
2.2 双击运行
直接双击 EasyCert.exe,出现下面这个界面就是启动成功了:
┌──────────────────────────────────────────────────────────────┐ │ 🔐 EasyCert SSL 证书申请工具 │ │ 基于 ACME DNS-01 │ ├──────────────────────────────────────────────────────────────┤ │ 🧪 当前环境:测试环境 (Staging) 无频率限制 [切换到生产环境 →] │ ├──────────────────────────────────────────────────────────────┤ │ ┌─ 基本配置 ────────────┐ ┌─ 证书选项 ────────────────────┐ │ │ │ 📧 邮箱 * [________] │ │ 密钥类型 [RSA (2048位) ▼] │ │ │ │ 🌐 域名 * [______] + │ │ DNS 等待 [45 秒] │ │ │ │ · example.com │ │ 证书输出目录 [./cert-output] │ │ │ │ × 移除 清空 │ │ □ 跳过频率限制检查 (--force) │ │ │ │ ☁️ Provider [cloudfl] │ │ │ │ │ │ ┌─ API Token [____] ─┐│ │ │ │ │ │ └─────────────────── ┘│ │ │ │ │ └───────────────────────┘ └──────────────────────────────┘ │ │ [💾 保存配置] [📂 加载配置] [🚀 申请证书] │ │ ┌─ 📋 执行日志 ───────────────────────────────────────────┐ │ │ │ │ │ │ │ [清空] [复制] │ │ │ └─────────────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────────┘
如果杀毒软件报毒,这是正常情况(PyInstaller 打包的 exe 会被某些杀毒软件误报)。添加信任即可。
3. 界面介绍
整个窗口分几个部分,从上到下依次是:
3.1 环境切换条(最顶部)
🧪 当前环境:测试环境 (Staging) 无频率限制 [切换到生产环境 →]
这一条非常显眼,告诉你当前是测试模式还是生产模式:
🟢 绿色 = 测试模式(安全,不限次数)
🔴 红色 = 生产模式(签发真实证书,有频率限制)
点击「切换到生产环境」会弹出确认框,防止误操作。
3.2 基本配置(左侧)
| 字段 | 说明 |
|---|---|
| 📧 邮箱 | 随便填一个你的邮箱,用于 ACME 账号注册(不会发垃圾邮件) |
| 🌐 域名 | 你要申请证书的域名,一个一个添加 |
| ☁️ DNS Provider | 选择你的 DNS 服务商(根据你的域名 DNS 托管在哪) |
| 凭证信息 | 根据你选的 DNS 服务商,填写对应的 API 密钥 |
3.3 证书选项(右侧)
| 字段 | 说明 |
|---|---|
| 密钥类型 | RSA (2048位) 最通用;ECC 性能更好但兼容性略差 |
| DNS 等待 | 提交 ACME 验证前等待 DNS 传播的时间,一般 45 秒足够 |
| 证书输出目录 | 证书保存到哪里,默认 ./cert-output |
| 跳过频率限制检查 | 生产模式超过限制时勾选可强制申请 |
3.4 按钮栏
| 按钮 | 说明 |
|---|---|
| 💾 保存配置 | 把当前填的信息保存为 json 文件,下次可以直接加载 |
| 📂 加载配置 | 加载之前保存的配置文件 |
| 🚀 申请证书 | 核心按钮! 所有信息填好后点这里申请 |
3.5 日志区(底部)
显示实时的执行日志。不同颜色的文字表示不同的含义:
🟢 绿色 = 成功信息
🟡 橙色 = 警告信息
🔴 红色 = 错误信息
⚪ 灰色 = 普通提示
4. 方式一:Cloudflare 自动申请(推荐)
适合 DNS 托管在 Cloudflare 的用户。这是最推荐的方式,因为:
Cloudflare API 最简单
速度快
不容易出错
4.1 第一步:获取 Cloudflare API Token
第 1 步:登录 Cloudflare 控制台
第 2 步:右上角点头像 → My Profile → API Tokens
↓
第 3 步:点击 Create Token(创建令牌)
第 4 步:找到 Edit zone DNS 模板,点右边的 Use template
第 5 步:按以下配置填写:
| 字段 | 填写内容 |
|---|---|
| Token name | 随便填,比如 easycert |
| Permissions(权限) | Zone → DNS → Edit(默认已选好) |
| Zone Resources(区域资源) | Include → Specific zone → 选择你的域名(如 example.com) |
⚠️ Zone Resources 建议只选你的域名,不要选 All zones,这样即使 Token 泄露也只影响这一个域名。
第 6 步:点击 Continue to summary → Create Token
第 7 步:立刻复制 Token(它长这样:abc123def456...)
⚠️ 这个 Token 只显示一次!关掉页面就再也看不到了。复制后先粘贴到记事本暂存。
4.2 第二步:在 EasyCert 中填写
| 字段 | 填写内容 |
|---|---|
| 📧 邮箱 | 你的邮箱(如 admin@example.com) |
| 🌐 域名 | 输入域名,点「添加」(如 example.com → 点添加) |
| ☁️ DNS Provider | 选择 cloudflare |
| API Token 输入框 | 粘贴刚才复制的 Cloudflare Token |
添加域名示例:
在输入框输入:example.com → 点「+添加」 在输入框输入:www.example.com → 点「+添加」 在输入框输入:*.example.com → 点「+添加」
💡
*.example.com是通配符域名,一张证书覆盖所有子域名(blog.example.com、shop.example.com...)
4.3 第三步:选择环境
默认是 🧪 测试模式。第一次建议先用测试模式试一下,看能不能成功。
测试模式申请的证书浏览器不信任,但流程和生产模式完全一样,可以用来验证配置是否正确。
4.4 第四步:点击申请
点那个大大的 🚀 申请证书 按钮。
这时候看底部的日志区,会看到类似这样的输出:
======================================================== EasyCert — SSL/TLS 证书申请工具 (可视化版) ======================================================== 模式 : STAGING 🟡 (测试环境) ACME : https://acme-staging-v02.api.letsencrypt.org/directory 域名 : example.com, www.example.com Provider: cloudflare 密钥 : RSA 输出目录: ./cert-output [INFO] 开始创建订单... [INFO] 写入 DNS TXT: _acme-challenge.example.com [INFO] 等待 DNS 传播 45 秒... [OK] DNS TXT 已可解析: _acme-challenge.example.com [INFO] 写入 DNS TXT: _acme-challenge.www.example.com [INFO] 等待 DNS 传播 45 秒... [OK] DNS TXT 已可解析: _acme-challenge.www.example.com [INFO] 等待 ACME 验证并签发证书... ★★★★★★★★★★★★★★★★★★★★★★★★★★ 证书申请成功 ✅ ★★★★★★★★★★★★★★★★★★★★★★★★★★ privkey.key : E:\ssl-tool\cert-output\example.com\privkey.key fullchain.pem: E:\ssl-tool\cert-output\example.com\fullchain.pem cert.pem : E:\ssl-tool\cert-output\example.com\cert.pem chain.pem : E:\ssl-tool\cert-output\example.com\chain.pem 认证域名 : example.com, www.example.com 到期时间 : 2026-09-27 13:00:24 UTC 剩余天数 : 89 天
看到 证书申请成功 的弹窗,就说明申请成功了!
4.5 第五步:切到生产模式申请真实证书
测试模式成功后,点击环境切换条的「切换到生产环境 →」:
🔴 当前环境:生产环境 (Production) ⚠️ 有频率限制 [← 切换到测试环境]
会弹出一个确认框,点「是」确认。然后再次点击 🚀 申请证书。
生产模式申请到的证书就是浏览器认可的正式证书了。
5. 方式二:阿里云 DNS 自动申请
适合 DNS 托管在阿里云(万网)的用户。
5.1 第一步:获取阿里云 AccessKey
第 1 步:登录 阿里云 RAM 访问控制台
第 2 步:左侧菜单 → 身份管理 → 用户 → 创建用户
| 字段 | 填写 |
|---|---|
| 登录名称 | 比如 ssl-bot |
| 显示名称 | 随意填 |
| 访问方式 | ✅ 勾选「OpenAPI 调用访问」(一定要勾上) |
第 3 步:点「确定」,创建成功后你会看到:
AccessKey ID: LTAI5t...abcdefAccessKey Secret: xxxxxxxXYzzzzz ← 复制保存!
⚠️ AccessKey Secret 只显示一次,关掉就再也看不到了。立即复制到记事本。
第 4 步:给这个用户授权
点击用户名称进入详情
点 权限管理 → 新增授权
搜索并选择 **
AliyunDNSFullAccess**(DNS 完整权限)点击「确定」
💡 如果公司有安全要求,可以用更细的权限:
alidns:AddDomainRecord
alidns:DeleteDomainRecord
alidns:DescribeDomainRecords
5.2 第二步:在 EasyCert 中填写
| 字段 | 填写内容 |
|---|---|
| 📧 邮箱 | 你的邮箱 |
| 🌐 域名 | 添加你的域名 |
| ☁️ DNS Provider | 选择 aliyun |
| AccessKey ID | 粘贴刚才的 AccessKey ID |
| AccessKey Secret | 粘贴刚才的 AccessKey Secret |
5.3 第三步:申请证书
点 🚀 申请证书。先用测试模式试,成功后切生产模式。
6. 方式三:DNSPod(腾讯云)自动申请
适合 DNS 托管在 DNSPod / 腾讯云的用户。
6.1 第一步:获取 SecretId 和 SecretKey
第 1 步:登录 腾讯云控制台
第 2 步:搜索 访问管理 CAM → API 密钥管理
第 3 步:点 新建密钥,系统生成:
SecretId: AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSecretKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
复制保存好,关闭页面后就看不到了。
6.2 第二步:在 EasyCert 中填写
| 字段 | 填写内容 |
|---|---|
| 📧 邮箱 | 你的邮箱 |
| 🌐 域名 | 添加你的域名 |
| ☁️ DNS Provider | 选择 dnspod |
| SecretId | 粘贴 SecretId |
| SecretKey | 粘贴 SecretKey |
6.3 第三步:申请证书
点 🚀 申请证书。先用测试模式试,成功后切生产模式。
7. 方式四:手动 DNS 模式(适合其他 DNS 服务商)
如果你的 DNS 服务商不是 Cloudflare、阿里云、DNSPod 这三个(比如华为云、百度云、GoDaddy、Namecheap、Vercel 等),用手动模式。
7.1 第一步:选择手动模式
| 字段 | 填写内容 |
|---|---|
| ☁️ DNS Provider | 选择 manual(手动 DNS 模式) |
凭证区域会显示说明文字,不需要填写任何 API 密钥。
7.2 第二步:填写其他信息
正常填写邮箱、添加域名。
7.3 第三步:点击申请
点 🚀 申请证书。
7.4 第四步:会弹出这个窗口
┌──────────────────────────────────────────────┐ │ 📝 手动添加 DNS TXT 记录 │ │ │ │ 请在 DNS 管理后台为以下域名添加一条 TXT 记录, │ │ 然后点击「我已添加,继续验证」。 │ │ │ │ ┌─ DNS TXT 记录信息 ──────────────────────┐ │ │ │ 记录类型: TXT [📋 复制]│ │ │ │ 主机记录: _acme-challenge.example.com │ │ │ │ 记录值: xG9...abc... [📋 复制] │ │ │ └──────────────────────────────────────────┘ │ │ │ │ 💡 添加后可能需要等待 1-5 分钟生效 │ │ │ │ [✅ 我已添加,继续验证] │ └──────────────────────────────────────────────┘
7.5 第五步:去你的 DNS 管理后台添加记录
登录你的 DNS 管理后台(华为云、百度云、GoDaddy 等),找到 DNS 解析设置页面。
以华为云为例(其他服务商类似):
登录华为云控制台 → 域名注册 → DNS 解析
找到你的域名
点击「添加记录集」:
| 字段 | 值(从弹窗复制) |
|---|---|
| 记录类型 | TXT |
| 主机记录 | _acme-challenge(或完整的 _acme-challenge.example.com) |
| 记录值 | 复制弹窗中的那一长串字符 |
| TTL | 默认即可(通常 300 或 600 秒) |
7.6 第六步:回来点击「我已添加」
DNS 记录添加好后,回到弹窗点 「✅ 我已添加,继续验证」。
程序会自动检查 DNS 有没有生效,然后继续完成证书签发。
💡 如果点了之后提示 DNS 还没生效,可以等一两分钟再试一次。也可以在添加记录前先点好弹窗,利用弹窗等待的时间让 DNS 有足够时间生效。
7.7 多个域名的情况
如果有多个域名(比如 example.com 和 www.example.com),程序会依次弹出多个对话框,每个域名都需要手动添加 TXT 记录。
8. 测试模式 vs 生产模式
8.1 两种模式的区别
| 对比项 | 🧪 测试模式 (Staging) | 🔴 生产模式 (Production) |
|---|---|---|
| 证书是否被浏览器信任 | ❌ 不信任,会报安全警告 | ✅ 信任,绿色小锁 |
| 申请次数限制 | ❌ 无限制,随便测试 | ✅ 每个域名每周最多 50 张 |
| 适合场景 | 首次使用、测试流程 | 正式上线、部署使用 |
8.2 推荐的完整流程
第 1 步:默认测试模式,点击申请 ✅ ↓ 第 2 步:确认日志显示 STAGING,申请成功 ✅ ↓ 第 3 步:点击「切换到生产环境」,确认弹窗 ✅ ↓ 第 4 步:再次点击申请证书,拿到正式证书 ✅ ↓ 第 5 步:部署证书到服务器 ✅
8.3 如何确认当前是什么模式?
看环境切换条:
🧪 当前环境:测试环境 (Staging) ← 🟢 绿色条 = 测试模式 🔴 当前环境:生产环境 (Production) ← 🔴 红色条 = 生产模式
看日志:
模式 : STAGING 🟡 (测试环境) ACME : https://acme-staging-v02.api.letsencrypt.org/directory ^^^^^^^
模式 : PRODUCTION 🔴 (正式环境) ACME : https://acme-v02.api.letsencrypt.org/directory ^^^ (没有 staging)
9. 证书文件说明与部署
9.1 证书文件
申请成功后,在输出目录下会生成以主域名命名的文件夹:
cert-output/ └── example.com/ ← 以主域名命名的文件夹 ├── privkey.key 🔒 私钥(机密!不要泄露) ├── fullchain.pem 📄 完整证书链(最常用) ├── cert.pem 📄 服务器证书 └── chain.pem 📄 中间证书链
| 文件 | 用途 | 保密要求 |
|---|---|---|
privkey.key | 私钥,部署到服务器 | ⚠️ 绝密,不要公开 |
fullchain.pem | 完整证书链(网站证书 + 中间证书) | 公开 |
cert.pem | 网站证书本身 | 公开 |
chain.pem | 中间证书链 | 公开 |
9.2 部署到 Nginx
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.key;
# 你的其他配置...
}9.3 部署到 Apache
<VirtualHost *:443> ServerName example.com SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/privkey.key SSLCertificateChainFile /path/to/chain.pem </VirtualHost>
9.4 强制 HTTPS 跳转
Nginx:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://hostrequest_uri;
}Apache(放到 .htaccess):
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]9.5 证书有效期
Let's Encrypt 证书有效期 90 天。到期前需要重新申请。
⏰ 建议在日历上设个提醒,每 60-70 天 运行一次 EasyCert 重新申请。
10. 常见问题
Q1:点「申请证书」后程序退出了怎么办?
这是之前版本的一个 bug,已在最新版本修复。请确认你用的是最新版的 EasyCert.exe。
如果还是出现问题,查看程序目录下的 easycert_crash.log 文件,里面有详细的错误信息。
Q2:提示「参数不完整」
检查以下项目是否都填了:
✅ 邮箱地址
✅ 至少一个域名
✅ 选择了 DNS Provider
✅ 填写了对应的 API 凭证(手动模式不需要)
Q3:提示「Cloudflare API 失败」
可能的原因:
API Token 权限不够 → 重新创建 Token,确保有 DNS:Edit 权限
Token 复制错了 → 重新复制,不要有多余的空格
域名还没添加到 Cloudflare → 先去 Cloudflare 添加域名
Token 关联的域名不对 → 创建 Token 时 Zone Resources 要选你的域名
Q4:提示「Aliyun DNS API 失败」
可能的原因:
RAM 子账号没有授权 → 去 RAM 控制台添加
AliyunDNSFullAccess权限AccessKey 复制错了 → 重新复制
域名 DNS 不在阿里云 → 检查域名的 Nameserver 是否指向阿里云
Q5:提示「DNSPod API 失败」
可能的原因:
SecretId / SecretKey 填错了 → 检查是否复制完整
没有 DNSPod 操作权限 → 检查 CAM 授权
Q6:提示「ACME 域名验证失败」
可能的原因:
TXT 记录没加对 → 检查记录类型是不是 TXT,值是不是完整复制了
DNS 还没全球生效 → 等几分钟再试
域名拼写错误 → 检查域名有没有写错
Q7:证书申请成功后,文件在哪?
默认在程序目录下的 cert-output/你的域名/ 文件夹里。
如果运行的是 EasyCert.exe,就在 EasyCert.exe 同目录下的 cert-output/ 文件夹里。
Q8:我换了电脑,配置怎么迁移?
把原来的 config.json 文件复制到新电脑的 exe 同目录下,启动程序后点击 「📂 加载配置」 选它就行。
Q9:API Token / AccessKey 泄露了怎么办?
| 平台 | 处理方法 |
|---|---|
| Cloudflare | 登录控制台 → My Profile → API Tokens → 删除泄露的 Token,新建一个 |
| 阿里云 | RAM 控制台 → 用户 → 删除/禁用泄露的 AccessKey,新建一个 |
| DNSPod | 腾讯云 CAM → API 密钥管理 → 禁用/删除泄露的密钥,新建一个 |
Q10:怎么判断申请到的是测试证书还是正式证书?
看日志输出:
模式 : STAGING 🟡 (测试环境) ← 测试证书 模式 : PRODUCTION 🔴 (正式环境) ← 正式证书
看浏览器:
把证书部署到服务器后,用浏览器访问。如果浏览器地址栏出现绿色小锁,就是正式证书;如果提示"不安全",就是测试证书(或者没部署对)。
Q11:一次可以申请多少个域名?
一张证书最多可以包含 100 个域名。
支持的格式:
example.com— 主域名www.example.com— 子域名*.example.com— 通配符(覆盖所有一级子域名)blog.example.com— 指定子域名
Q12:DNS 传播等待时间应该设置多少?
| 场景 | 建议值 |
|---|---|
| Cloudflare(自动) | 45 秒 |
| 阿里云(自动) | 45 秒 |
| DNSPod(自动) | 45 秒 |
| 手动模式(确定记录已添加) | 30 秒 |
| 网络较慢或不确定 | 60-90 秒 |
11. 附录:如何选择 DNS 服务商
判断你的 DNS 服务商
方法 1:看购买域名的平台
| 你在哪里买的域名 | DNS 很可能托管在 |
|---|---|
| 阿里云 / 万网 | 阿里云 DNS |
| 腾讯云 / DNSPod | DNSPod |
| Cloudflare | Cloudflare |
| GoDaddy | GoDaddy(手动模式) |
| Namecheap | Namecheap(手动模式) |
| 华为云 | 华为云(手动模式) |
方法 2:查 Nameserver
访问 https://who.is,输入域名。在结果中找到 Nameserver 部分:
ns1.cloudflare.com/ns2.cloudflare.com→ Cloudflaredns9.hichina.com/dns10.hichina.com→ 阿里云f1g1ns1.dnspod.net/f1g1ns2.dnspod.net→ DNSPod其他 → 手动 DNS 模式
各方式的优缺点
| 方式 | 优点 | 缺点 |
|---|---|---|
| Cloudflare ✅ 最推荐 | API 稳定,操作简单,速度快 | 需要将 DNS 托管到 Cloudflare |
| 阿里云 ✅ 推荐 | 国内用户多,阿里云买域名自动用 | 需要 RAM 授权配置 |
| DNSPod ✅ 推荐 | 腾讯云用户方便 | 需要 CAM 授权配置 |
| 手动 DNS ⚠️ 备选 | 任何 DNS 服务商都能用 | 需要手动添加 TXT 记录,步骤多 |
最后提醒:SSL 证书有效期 90 天,建议在手机日历设个提醒,每 2 个月重新申请一次。用 EasyCert 点一下按钮就行,很简单 😊