简介:本文介绍了一款新开源的HTML5单文件网页版ACME客户端,支持在线申请Let's Encrypt和ZeroSSL的免费HTTPS多域名通配符证书,涵盖RSA和EC算法,无需服务器环境即可完成证书申请与管理,适合开发者及企业用户快速部署HTTPS。
随着互联网安全标准的升级,HTTPS已成为网站标配。然而,传统证书申请流程存在三大痛点:
在此背景下,一款纯HTML5单文件的ACME客户端应运而生,它通过浏览器直接调用ACME API,无需后端服务,彻底解决了部署与环境依赖问题。
该客户端采用三层分离架构:
// 示例:生成EC密钥对(P-256曲线)async function generateECKey() {return await window.crypto.subtle.generateKey({ name: "ECDSA", namedCurve: "P-256" },true, ["sign", "verify"]);}
用户仅需输入主域名(如*.example.com),系统自动完成以下步骤:
acme-client.html)至本地,通过file://协议打开;步骤1:打开客户端,点击“新建证书”;
步骤2:输入域名(如*.demo.com),选择CA(Let’s Encrypt/ZeroSSL)和算法(EC-P256);
步骤3:配置DNS API密钥(以阿里云为例):
// 伪代码:调用阿里云DNS API更新TXT记录async function updateDNS(domain, token) {const apiKey = "YOUR_ALIYUN_KEY";const response = await fetch(`https://dnsapi.aliyun.com/update?Action=UpdateDomainRecord&RecordId=123&RR=_acme-challenge&Type=TXT&Value=${token}`, {headers: { "Authorization": `API-KEY ${apiKey}` }});return response.ok;}
步骤4:点击“验证并签发”,等待30秒完成证书生成;
步骤5:下载证书包,解压后包含:
fullchain.pem(证书链)privkey.pem(私钥)chain.pem(中间证书)| 场景 | 传统方案 | 本方案优势 |
|---|---|---|
| 个人博客 | Certbot+Linux服务器 | 无需服务器,Windows/macOS通用 |
| 中小企业内网系统 | 购买商业证书 | 免费通配符证书,年省数千元 |
| 开发测试环境 | 自签名证书 | 自动续期,避免浏览器警告 |
| 多CA冗余部署 | 需维护多个客户端 | 单界面管理Let’s Encrypt/ZeroSSL |
该项目采用MIT协议开源,欢迎提交以下贡献:
dns-providers.js模块,支持更多服务商API;开发环境搭建:
# 克隆仓库git clone https://github.com/your-repo/acme-html5-client.git# 启动本地开发服务器(避免CORS问题)npx serve .
这款HTML5单文件ACME客户端以极简的设计实现了复杂的安全需求,无论是个人开发者快速部署HTTPS,还是企业用户管理大规模证书,都能显著提升效率与安全性。其开源特性更确保了长期的可维护性与透明度,值得每一位网络管理员纳入工具箱。