Счёт и конфигурация
xrtAcmeAccountConfigInit конфигурация
Обнулить конфигурацию счёта; пресеты ЦС XACME_DIRECTORY_LE / LE_STAGING / ZEROSSL / GOOGLE / BUYPASS присваиваются прямо в sDirectoryUrl.
Поток выпуска (5 входов)
xacmeClientInit / Unit / AccountPem жизненный цикл
Создание клиента: разбор directory, регистрация или переиспользование счёта (kid из заголовка Location); AccountPem экспортирует ключ счёта для сохранения. Неудача ставит потоковую ошибку (домен "xrt.acme.flow").
xacmeClientIssue выпуск
Один выпуск dns-01: домены могут быть с шаблонами; возвращает цепочку сертификатов PEM (освобождение xrtFree). Add провайдера вызывается до вызова, Remove — по мере возможности после.
xacmeClientIssueStored продление одним шагом
В композиции с хранилищем: при остатке ≥ iRenewalDays вернуть существующую цепочку как есть (*pbRenewed=false); иначе выпустить, записать (fullchain + происхождение ЦС) и вернуть новую цепочку.
DNS-провайдеры
xrtAcmeDnsProviderValidate / Count / Id интерфейс
Проверка структуры провайдера и перечисление встроенного реестра (сейчас только "ali"); сторонние вендоры подключаются заполнением структуры (id/Add/Remove/необязательный Propagate).
xrtAcmeDnsAliConfigInit / xrtAcmeDnsAli / ProviderUnit aliyun
Конструирование провайдера Aliyun alidns (подпись ACS3-HMAC-SHA256 V3) и уборка; ключи — через окружение/Custom.
Библиотека несёт собственный зонд распространения TXT (UDP к авторитетному NS) и сообщает ЦС о проверке только когда запись видна.
Хранилище и продление
xrtAcmeStoreSaveAccount / LoadAccount счёт
Сохранение/чтение ключа счёта (PKCS#8 PEM) — передайте его в Init для переиспользования, минуя повторную регистрацию.
xrtAcmeStoreSaveCert / LoadCert / LoadCertCa сертификаты
Раздельные запись и чтение полной цепочки и происхождения ЦС, атомарная запись.
xrtAcmeStoreNeedRenew проверка продления
Решение по остатку дней, пора ли продлевать (разбор x509, без внешних процессов).