SSL证书申请教程(ACMEH5客户端)
纯浏览器申请免费 SSL 证书:ACME-HTML-Web-Browser-Client 完整实操指南
💡 核心结论:不想碰命令行、不想装软件、不想注册账号,就想在浏览器里点几下拿到一张免费 SSL 证书——ACME-HTML-Web-Browser-Client 就是干这个的。它把 ACME 协议的全部流程(申请 → 验证 → 签发 → 下载)封装进一个 HTML 文件,打开网页就能用,申请完直接拿到 PEM 格式的证书和私钥。
🔍这是什么工具
ACME-HTML-Web-Browser-Client 是一个纯前端 ACME 客户端,由开发者 xiangyuecn 开源。它的核心特点很明确:
- 单一 HTML 文件——整个客户端就一个静态 HTML,不依赖任何后端服务。你可以直接右键「另存为」保存到本地,断网都能打开界面。
- 无需注册、无需登录——不需要在 Let's Encrypt 或 ZeroSSL 注册账号,打开就能申请。
- 全程手动操作——所有步骤在浏览器界面完成,复制粘贴即可,不用敲一行命令。
- 数据安全可控——除了你指定的 ACME 接口地址外,客户端不会向其他地址发送数据。打开浏览器开发者工具的网络面板,可以随时审查每一个请求。
支持的证书颁发机构
Let's Encrypt、ZeroSSL、Google Trust Services,以及任何兼容 ACME 协议的 CA。其中 Let's Encrypt 最省事,不需要额外配置;ZeroSSL 和 Google Trust Services 需要提供 EAB 凭据。
支持的证书类型
RSA(2048 / 3072 / 4096)和 ECC / ECDSA(P-256 / P-384 / P-521),支持多域名和通配符泛域名证书。
📋开始之前:你需要准备什么
在打开工具之前,先确认这几个条件,能避免中途卡住:
- 域名控制权——你拥有要申请证书的域名,并且能修改它的 DNS 解析记录(添加 TXT 记录)。
- 一个邮箱地址——用于接收 CA 的通知,比如证书即将过期的提醒。用常用邮箱就行。
- 现代浏览器——Chrome 60+、Firefox 55+、Safari 12+、Edge 79+ 都可以。
- 证书用途——想清楚证书要部署到哪里(Nginx、Apache、宝塔面板、Caddy 等),方便后续复制粘贴。
📌 关于备案:Let's Encrypt、ZeroSSL 都是国外 CA,申请证书不需要 ICP 备案。域名在哪注册的都行。
🚀完整操作步骤
打开工具,选择证书颁发机构
点击上方按钮打开客户端后,第一步是选择 CA。推荐直接选 Let's Encrypt——使用最广泛、文档最全、不需要额外配置。
如果你选 ZeroSSL 或 Google Trust Services,需要提前准备 EAB 凭据(External Account Binding),在对应 CA 的官网申请后填入。对新手来说,直接选 Let's Encrypt 最省心。
填写域名与密钥配置
在「证书配置」区域填写以下信息:
- 域名——填写要申请证书的域名。多个域名用逗号或换行分隔。如果要申请通配符证书,建议同时填
*.yourdomain.com和yourdomain.com,这样主域名和所有子域名都能用同一张证书。 - 证书私钥类型——选 RSA 或 ECC。现代网站推荐 ECC(P-256),密钥更短、TLS 握手更快,所有现代浏览器都支持。
- 账户私钥——ACME 协议需要生成一个账户密钥对,工具会自动处理,你只需选择类型。
- 联系邮箱——填写常用邮箱,CA 会用它发送证书过期提醒。
完成域名验证(关键一步)
这是整个流程中最容易出错的一步。工具支持两种验证方式,推荐用 DNS 验证。
方式一:DNS 验证(推荐)
- 工具会生成一段 TXT 记录的值,通常是类似
abc123...xyz的长字符串。 - 打开你的 DNS 解析控制台(Cloudflare、DNSPod、阿里云解析等都行),添加一条 TXT 记录:
- 主机记录:按工具提示填写,通常是
_acme-challenge或_acme-challenge.yourdomain.com - 记录类型:选择
TXT - 记录值:粘贴工具生成的那串字符
- 主机记录:按工具提示填写,通常是
- 保存后回到工具页面,点击「验证」按钮。
方式二:HTTP 文件验证
- 工具会生成一个验证文件的内容。
- 在你的 Web 服务器上创建指定路径(通常是
/.well-known/acme-challenge/目录下的文件),把内容放进去。 - 确保该文件可以通过 HTTP 公开访问,然后点击「验证」。
⚠️ 重要提醒:申请通配符证书(泛域名)必须用 DNS 验证,HTTP 验证不支持泛域名。这是 ACME 协议的规定,不是工具的限制。
下载证书
验证通过后,CA 会签发证书。工具页面会展示以下内容:
- 证书文件(PEM 格式)——包含服务器证书和中间证书的完整链
- 私钥文件——证书对应的私钥,务必妥善保管
- 配置记录——完整的操作记录,建议保存下来方便下次参考
把证书内容保存为 .cer 或 .pem 文件,私钥内容保存为 .key 文件,就可以部署到服务器了。
📦证书下载后怎么部署
Nginx 部署
把证书文件放到服务器上(比如 /etc/nginx/ssl/),然后在 Nginx 配置中引用:
server {
listen 443 ssl http2;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.com.fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# ... 其他配置
}
改完后执行 nginx -t 检查配置,然后 nginx -s reload 重载。
宝塔面板部署
进入站点设置 → SSL → 粘贴证书和私钥内容 → 保存。宝塔会自动处理证书链拼接和 Nginx 重载。
Apache 部署
<VirtualHost *:443>
ServerName yourdomain.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/yourdomain.com.fullchain.cer
SSLCertificateKeyFile /etc/apache2/ssl/yourdomain.com.key
</VirtualHost>
✅ 验证证书是否生效:用浏览器访问 https://yourdomain.com,地址栏显示安全锁图标即成功。点击锁图标可以查看证书的颁发机构、有效期和域名匹配情况。
⚠️这个工具不能做什么
有几个重要的限制需要提前知道,避免期望落空:
🚫 不能自动续期。这个工具是纯手动操作的,不支持自动续期。免费证书普遍只有 90 天有效期,到期前你需要重新打开工具,重复一遍申请流程。如果嫌麻烦,可以在到期前一周用工具申请一张新证书替换。
⚠️ 不适合批量自动化场景。如果你有大量域名需要管理,或者希望证书自动续期、自动部署,建议用 acme.sh 或 Certbot 这类命令行工具。浏览器工具适合偶尔申请、单域名场景。
⚠️ 私钥在浏览器中生成。虽然客户端是纯前端的,私钥不会上传到任何服务器,但请确保你在可信的设备和网络环境中操作,不要在公共电脑上申请证书。
❓常见问题
Q:申请证书需要备案吗?
不需要。Let's Encrypt 和 ZeroSSL 都是国外 CA,申请证书不依赖 ICP 备案。域名在哪注册的都可以。
Q:通配符证书怎么申请?
在域名配置中填写 *.yourdomain.com 和 yourdomain.com,验证方式必须用 DNS 验证。ACME 协议的通配符证书只能通过 DNS 验证签发,这是硬性规定。
Q:DNS 记录添加后验证失败怎么办?
常见原因有三个:一是 DNS 记录还没生效,TTL 太短需要等几分钟再试;二是 TXT 记录值粘贴时多了空格或换行;三是主机记录填错了(应该是 _acme-challenge 而不是 acme-challenge)。可以先用 dig _acme-challenge.yourdomain.com TXT +short 确认记录已生效。
Q:证书下载后怎么用?
Nginx 用 ssl_certificate 和 ssl_certificate_key 引用证书和私钥文件;宝塔面板直接在 SSL 页面粘贴内容;Caddy 会自动加载 .pem 和 .key 文件。参考上文的「证书下载后怎么部署」章节。
Q:浏览器工具和 acme.sh 有什么区别?
浏览器工具简单、零依赖、适合偶尔申请,但需要手动操作、不支持自动续期。acme.sh 适合服务器端自动化,支持自动续期、自动部署到多台服务器。如果你只是给自己的博客申请一张证书,浏览器工具完全够用。
Q:证书有效期是多久?
Let's Encrypt 和 ZeroSSL 的免费证书有效期都是 90 天。到期前需要重新申请。建议在到期前一周申请新证书替换,避免服务中断。
Q:可以申请多个域名的证书吗?
可以。在域名框中填写多个域名(用逗号或换行分隔),工具会把这些域名都签进同一张证书里。注意所有域名都必须完成验证。
🔗工具与项目地址
- 在线使用(GitHub Pages) 点击打开 H5 客户端 →
- 在线使用(Gitee Pages) 点击打开国内加速版 →
- GitHub 仓库 https://github.com/xiangyuecn/ACME-HTML-Web-Browser-Client
- Gitee 仓库 https://gitee.com/xiangyuecn/ACME-HTML-Web-Browser-Client
- Let's Encrypt 官网 https://letsencrypt.org
- ZeroSSL 官网 https://zerossl.com
📌 国内访问建议:GitHub Pages 在国内偶尔访问不稳定,如果打不开,用 Gitee Pages 的地址。两个地址内容完全一致,都是官方镜像。
📝小结
ACME-HTML-Web-Browser-Client 把免费 SSL 证书申请这件事的门槛降到了最低——不需要命令行、不需要装软件、不需要注册账号。打开网页,填域名,加一条 DNS 记录,点几下鼠标,证书就到手了。
三个关键提醒:
- 通配符证书必须用 DNS 验证,HTTP 验证不支持泛域名
- 证书有效期只有 90 天,到期需要手动重新申请
- 私钥妥善保管,不要泄露给任何人,也不要在不可信的设备上操作
对于偶尔需要申请证书、不熟悉 Linux 命令行的用户来说,这是一个非常实用的工具。如果你需要自动化续期和多服务器部署,再考虑转向 acme.sh 或 Certbot。