xacmeclientconfig类型
客户端配置:全部借用视图,宿主保证存活至 Create 返回。
typedef struct xacmeclientconfig { const xacmeaccountconfig* pAccount; cstr sCaPem; struct xnetengine* pBorrowedEngine; int64 uTimeoutMs; const cstr* sPropagateResolvers; size_t iPropagateResolverCount; uint32 uPropagateTimeoutMs; int64 uIssueTimeoutMs; cstr sCertKeyPem; } xacmeclientconfig;
xrtAcmeClientConfigInit函数
全零初始化;指针字段为空表示未设置。
XRT_API void xrtAcmeClientConfigInit(xacmeclientconfig* pConfig)
xrtAcmeClientCreate函数
创建客户端:建传输、解析 directory、注册或复用账户(含
XRT_API struct xacmeclient* xrtAcmeClientCreate(const xacmeclientconfig* pConfig)
xrtAcmeClientCleanup函数
清理资源而保留客户端外壳;空指针为 true,可重复调用。
XRT_API bool xrtAcmeClientCleanup(struct xacmeclient* pClient)
xrtAcmeClientDestroy函数
销毁并释放;入参可为空。清理超时或失败时保留外壳供重试。
XRT_API void xrtAcmeClientDestroy(struct xacmeclient* pClient)
xrtAcmeClientAccountPem函数
账户密钥 PKCS#8 PEM 导出(xrtFree 释放),宿主可持久化复用。
XRT_API str xrtAcmeClientAccountPem(const struct xacmeclient* pClient)
xrtAcmeClientIssue函数
一次 dns-01 签发:域名可含通配符(*. 前缀);产物含证书链与
XRT_API bool xrtAcmeClientIssue(struct xacmeclient* pClient, const xstrview* pDomains, size_t iDomainCount, const xacmednsprovider* pDns, xacmeissuegrant* pOut)
xrtAcmeClientIssueEx函数
Issue 的备用链变体:bPreferAlternate 时若证书响应的 Link 头带
XRT_API bool xrtAcmeClientIssueEx(struct xacmeclient* pClient, const xstrview* pDomains, size_t iDomainCount, const xacmednsprovider* pDns, bool bPreferAlternate, xacmeissuegrant* pOut)
xrtAcmeClientRevoke函数
吊销证书(RFC 8555 §7.6,账户钥签名):sCertPem 为单张证书
XRT_API bool xrtAcmeClientRevoke(struct xacmeclient* pClient, cstr sCertPem, int iReason)
xrtAcmeClientRollover函数
账户密钥滚动(RFC 8555 §7.3.5):用 sNewKeyPem(PKCS#8/SEC1)
XRT_API bool xrtAcmeClientRollover(struct xacmeclient* pClient, cstr sNewKeyPem, cstr sStoreRoot)
xrtAcmeClientDeactivate函数
账户停用(RFC 8555 §7.3.6):停用后该账户及其订单永久不可用;
XRT_API bool xrtAcmeClientDeactivate(struct xacmeclient* pClient)
xrtAcmeClientIssueStored函数
一站式续签(组合 store):本地证书剩余寿命不少于 iRenewalDays
XRT_API bool xrtAcmeClientIssueStored(struct xacmeclient* pClient, const xstrview* pDomains, size_t iDomainCount, const xacmednsprovider* pDns, cstr sStoreRoot, int iRenewalDays, xacmeissuegrant* pOut, bool* pbRenewed)