aardio 文档

web.acme 库模块帮助文档

web 成员列表 #

web.acme #

ACME 协议客户端(RFC 8555),
支持 Let's Encrypt 等 CA 自动申请 SSL 证书

web.acme() #

返回对象:webAcmeObject

web.acme(directoryUrl,userAgent,proxy,proxyByPass,httpFlags) #

创建 ACME 客户端,

可选参数 @directoryUrl 指定目录 URL,默认 Let's Encrypt 生产环境
@directoryUrl 也可以使用以下短名称代替目录 URL:
"letsencrypt","letsencrypt_test","zerossl","google","google_test"
"letsencrypt_test" 等 test 后缀的 URL 用于测试环境。
注意开发测试时应当指定 "letsencrypt_test" 等测试 URL(宽松的测试与请求数限制)。

其他参数用于创建 web.acme.httpClient 客户端(与 web.rest.client 构造参数用法相同)

webAcmeObject 成员列表 #

webAcmeObject.close() #

关闭客户端,释放资源

webAcmeObject.directory #

ACME 目录对象,包含各端点 URL

webAcmeObject.directoryUrl #

当前使用的 ACME 目录 URL

webAcmeObject.downloadCertificate(certUrl) #

下载证书,返回 PEM 格式证书链

webAcmeObject.finalizeOrder(finalizeUrl,csrDer) #

提交 CSR 完成订单,
@csrDer 指定 DER 格式的 CSR 数据

webAcmeObject.findAccount() #

仅查找已有账户,不创建新账户,
成功返回账户信息,账户不存在返回错误

webAcmeObject.generateAccountKey(bits) #

生成新的 RSA 账户密钥,
可选参数 @bits 指定位数,默认 2048,
返回 crypt.rsa 对象

webAcmeObject.getAccountUrl() #

获取账户 URL

webAcmeObject.getAuthorization(authUrl) #

获取授权详情,
包含挑战信息(http-01、dns-01 等)

webAcmeObject.getDns01Value(token) #

计算 DNS-01 挑战的 TXT 记录值,
需添加到 _acme-challenge.{domain} 记录

webAcmeObject.getKeyAuthorization(token) #

计算 HTTP-01 挑战的 keyAuthorization 值,
需放置在 /.well-known/acme-challenge/{token} 路径

webAcmeObject.getOrder(orderUrl) #

获取订单当前状态

webAcmeObject.http #

ACME HTTP 客户端,web.acme.httpClient 对象(继承自 web.rest.client)。

返回对象:webRestClientObject

webAcmeObject.initAccountKey(pemPath) #

如果 PEM 文件存在则自文件加载账户密钥,
否则创建密钥并保存到 PEM 文件。
成功返回 true

webAcmeObject.loadAccountKey(pemPath) #

从 PEM 文件加载账户密钥,
成功返回 true

webAcmeObject.newOrder(domains) #

创建证书订单,
@domains 指定域名或 公网 IP(字符串或数组),
返回订单对象,包含 authorizations 和 finalize URL

webAcmeObject.pollStatus(url,targetStatus,maxAttempts,interval) #

轮询等待状态变化,
@targetStatus 指定目标状态(如 "valid"、"ready"),
@maxAttempts 最大尝试次数,默认 30,
@interval 间隔毫秒数,默认 2000

webAcmeObject.register #

注册新账户或获取已有账

webAcmeObject.register("email@example.com",true) #

email 可选,指定联系邮箱(字符串或数组),  
@termsAgreed 是否同意服务条款,默认 true,  
成功返回账户信息对象

webAcmeObject.register("email@example.com",true,"kid","hmac") #

email: 联系邮箱  
@termsAgreed: 同意条款  
@kid: (可选) EAB Key Identifier  
@hmac: (可选) EAB HMAC Key (Base64Url格式),  
Google/ZeroSSL 等商业或私有 CA 通常需要 EAB。

webAcmeObject.respondChallenge(challengeUrl) #

通知服务器已准备好挑战验证,
服务器将开始验证

webAcmeObject.revokeCertificate(certPem,reason) #

吊销证书,
@certPem 为 PEM 格式证书,
@reason 为吊销原因代码,默认 0

webAcmeObject.saveAccountKey(pemPath) #

保存账户密钥到 PEM 文件

webAcmeObject.setAccountKey(rsaKey) #

设置账户密钥(crypt.rsa 对象)

webAcmeObject.setAccountUrl(url) #

设置账户 URL,用于恢复已有账户会话

Markdown 格式