HTML5网页版ACME客户端 | ACME Web Browser Client

查看: 651|回复: 1
叶开 发表于 2023-3-15 16:11:16

HTML5网页版ACME客户端 | ACME Web Browser Client

本网页客户端(仅一个静态HTML网页文件)用于:向 Let's EncryptZeroSSL 等支持 ACME 协议的证书颁发机构,免费申请获得用于 HTTPS 的 SSL/TLS 域名证书(RSAECC/ECDSA),支持多域名和通配符泛域名;只需在现代浏览器上操作即可获得 PEM 格式纯文本的域名证书,不依赖操作系统环境(Windows、macOS都能用),无需下载和安装软件,无需注册登录,纯手动操作,只专注于申请获得证书这一件事,简单易用,非常适用于希望手动快捷申请获得证书的使用场景

在线使用网址(Gitee): https://xiangyuecn.gitee.io/acme-html-web-browser-client/ACME-HTML-Web-Browser-Client.html

交流与支持:欢迎加QQ群 421882406,纯小写口令 xiangyuecn。如需功能定制,网站、App、小程序、前端和后端等开发需求,请加此QQ群,联系群主(即作者),谢谢~

特性 | Features

  • 超级兼容:不限操作系统、无需考虑运行环境,只需用你常用的浏览器打开网页即可申请证书。
  • 功能丰富:支持申请RSAECC(ECDSA)证书,支持多域名和通配符,支持多个证书颁发机构。
  • 简单易用:点点鼠标 Ctrl+C Ctrl+V 就能完成证书的申请,全程需要的操作少,每一步都有保姆级操作提示,UI友好大气美观;本客户端不需要注册账号、更不需要登录
  • 单一文件:本网页客户端仅一个静态 HTML 文件,不依赖其他任何文件;因此可以直接保存到你本地,即可通过浏览器打开。
  • 数据安全:除了你指定证书颁发机构的 ACME 接口地址外,本网页客户端不会向其他任何地址发送数据,通过浏览器控制台很容易做到网络数据审查。
  • 系统安全:纯网页应用,不会也无法对你的电脑系统做出任何修改。

证书过期风险提醒:由于本网页客户端只能纯手动操作,不支持自动续期,需注意在证书过期前重新生申请新证书(免费证书普遍90天有效期,届时只需重复操作一遍即可),或使用 acme.sh 等客户端自动化续期。

使用方法 | Usage

  1. 打开本网页客户端:可以直接双击打开保存在本地的HTML文件,或者直接打开在线网页使用;
  2. 步骤一:在网页内选择证书颁发机构,或填写支持的ACME服务地址;不同证书颁发机构需要的操作不一定相同,请根据提示进行操作;
  3. 步骤二:在网页内填写需要申请证书的域名(支持多域名、通配符),和密钥等信息配置;不同证书颁发机构需要填写的配置不一定相同,请根据提示进行操作;
  4. 步骤三:根据网页内显示的第三步内容,给每个域名配置好合适的域名所有权验证方式;常见的验证方式有:DNS解析中配置TXT记录进行验证、上传文件到服务器进行验证,通配符域名一般仅支持DNS验证;等全部配置完成后开始验证;
  5. 步骤四:等域名所有权验证通过后,网页会显示第四步,提供证书文件下载,下载保存好;
  6. 最后:将下载保存的证书和私钥配置到你的网站中即可,不同系统程序的配置方法不同,请自行查找对应配置方法。

部分原理 | Some Principles

得益于现代浏览器的 crypto.subtle 对加密功能标准化,不依赖其他任何js库就能在网页上实现 RSAECC 的加密、解密、签名、验证、和密钥对生成。在本客户端内的 X509 对象中:用 X509.CreateCSR 来生成CSR,用 X509.KeyGenerate 来创建PEM格式密钥,用 X509.KeyParse 来解析PEM格式密钥,用 X509.KeyExport 来导出PEM格式密钥;这些功能都是根据相应的标准用js代码在二进制层面上实现的,二进制数据操作封装在了 ASN1 对象中:实现了 ASN.1 标准的二进制解析和封包,使用 ASN1.ParsePEM 方法可以解析任意的PEM格式密钥或证书。以上这些都是实现ACME网页客户端的核心基础。

然后就是对接ACME实现证书的签发,和实现交互UI;对接ACME可以直接参考 RFC 8555 标准。有些证书颁发机构的ACME服务对浏览器支持不良,未提供齐全的 Access-Control-* 响应头,导致网页内无法直接调用服务接口;目前采用的解决办法非常简单粗暴,比如ZeroSSL:检测到此ACME服务存在跨域问题时,会调用 acmeReadDirGotoCORS() 方法告诉用户操作步骤(你可以手动调用此方法),通过在他们的页面内运行本客户端来消除跨域问题(既然打不过,那就加入他们)。

地址:https://github.com/xiangyuecn/ACME-HTML-Web-Browser-Client






再温柔平和宁静的落雨,也有把人浸透的威力。--林清玄
帮主 发表于 2023-3-15 16:16:06
技术贴。顶。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于本站联系我们FAQ友情链接免责声明生存法则

Build with for "make" Copyright © 2020-2022. Powered by Discuz! GMT+8, 2024-4-27 00:31

快速回复 返回顶部 返回列表