HTML5网页版ACME客户端 版本: 1.0.220920 开源代码: GitHub >> | Gitee >>
步骤一:选择证书颁发机构
* 证书颁发机构 ACME(v2, RFC 8555) 服务URL:
读取服务目录
[17:14:51] 读取服务目录成功,请进行下一步操作。 URL=https://acme-v02.api.letsencrypt.org/directory
步骤二:证书配置
温馨提示:如果上次申请过证书,可以拖拽已下载保存的记录LOG文件到本页面,将自动填充上次的配置信息。
* 证书中要包含的域名:
一个证书可以包含多个域名(支持通配符),比如填写:a.com, *.a.com, b.com, *.b.com;第一个域名将作为证书的通用名称(Common Name);带通配符的域名只支持DNS验证,其他域名支持上传文件验证;注意:填了www.a.com时,一般需要额外填上a.com
* 证书的私钥:
生成或填写的私钥仅用于ACME接口签名,支持RSA(2048位+)ECC(prime256v1secp384r1secp521r1曲线)私钥;注意:证书私钥的类型决定了申请到的证书是RSA证书还是ECC(ECDSA)证书,RSA类型适用性更广也更常见;本客户端不会对此私钥进行保存或发送给其他任何人;证书签发后在部署到服务器时,需使用到此私钥;建议每次申请证书时均生成新的证书私钥。
* ACME账户的私钥:
生成或填写的私钥仅用于ACME接口签名,支持RSA(2048位+)ECC(prime256v1secp384r1secp521r1曲线)私钥;账户私钥类型对证书无影响;本客户端不会对此私钥进行保存或发送给其他任何人;一个私钥相当于一个账户,可用于吊销已签发的证书;建议每次申请证书时使用相同的一个私钥(这样短期内多次申请证书时,验证域名所有权的参数极有可能会保持相同),不过每次都生成一个新的私钥大部分情况下也不会有问题。
* ACME账户的联系邮箱:
此邮箱地址用于证书颁发机构给你发送邮件,比如:证书过期前的续期通知提醒。
确定
步骤三:验证域名所有权
等待中,请先完成第二步...
步骤四:下载保存证书PEM文件
等待中,请先完成第三步...
你需要其他格式的证书文件?
大部分服务器程序支持直接使用 your_domain.pem+your_domain.key 来配置开启HTTPS(比如Nginx),如果你需要 *.pfx*.p12 格式的证书(比如用于IIS),请用下面命令将PEM证书转换成 pfx/p12 格式:
openssl pkcs12 -export -out your_domain.pfx -inkey your_domain.key -in your_domain.pem
IIS证书链缺失?
对于Windows IIS服务器,你需要将证书链安装到“本地计算机”的“中间证书颁发机构”中;请将PEM证书中的所有证书拆分成单个PEM文件(后缀改成.crt.cer),然后将系统中缺失的中间证书双击打开然后安装进去;详细参考: http://support.microsoft.com/kb/954755
本客户端部分原理简介
得益于现代浏览器的 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() 方法告诉用户操作步骤(你可以手动调用此方法),通过在他们的页面内运行本客户端来消除跨域问题(既然打不过,那就加入他们)。
QQ群:交流与支持
欢迎加QQ群:421882406,纯小写口令:xiangyuecn。如需功能定制,网站、App、小程序、前端和后端等开发需求,请加此QQ群,联系群主(即作者),谢谢~
版本: 1.0.220920 License: GPL-3.0
赏包辣条?
客户端工具开发维护不易,期望本项目对你能有所帮助,欢迎通过下面按钮打赏作者~
打赏 😘
Language: 中文 | EN