@distilled.cloud/zerossl

中文文档
1.0.0-rc.19发布于 2026/11/12Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 244.1万
原始使用文档

ZeroSSL for Effect

@distilled.cloud/zerossl provides ZeroSSL's External Account Binding (EAB) credential endpoint. Install it alongside effect, set ZEROSSL_ACCESS_KEY, save this as example.ts, and run node example.ts:

import * as ZeroSsl from "@distilled.cloud/zerossl";
import * as Effect from "effect/Effect";
import * as FetchHttpClient from "effect/http/FetchHttpClient";

const eab = await Effect.runPromise(
  ZeroSsl.zerossl.generateEabCredentials({}).pipe(
    Effect.provide(ZeroSsl.CredentialsFromEnv),
    Effect.provide(FetchHttpClient.layer),
  ),
);
console.log({ success: eab.success });
// Store eab.eab_kid and the redacted eab.eab_hmac_key securely.

This makes a real credential-generation request. EAB credentials are reusable and subject to daily limits; generate once and retain the pair rather than running the example for every certificate.

Authentication and outputs

CredentialsFromEnv reads ZEROSSL_ACCESS_KEY, falling back to ZERO_SSL_KEY. ZeroSsl.layer({ accessKey, apiBaseUrl }) accepts explicit credentials with a redacted access key. Requests use Authorization: ApiKey <key>, not a query parameter, following the current REST authentication guidance. Header-only authentication is supported by POST /acme/eab-credentials.

The service remains ZeroSsl.zerossl.generateEabCredentials (also available from @distilled.cloud/zerossl/zerossl). Its HMAC output is Redacted<string>, matching the runtime value. success remains boolean; the protocol also normalizes the EAB documentation's numeric 1/0 form. JSON outputs are schema-validated before sensitive values are wrapped. ZeroSslParseError omits raw bodies and potentially secret-bearing parser errors. Typed rate-limit errors retain Retry-After as an optional Effect Duration, including when ZeroSSL sends an error envelope with HTTP 200.

Source and limitations

scripts/convert.ts builds the Smithy model from the ZeroSSL API reference, which ZeroSSL publishes as Markdown in zerossl/documentation and the spec mirror specs/spec-mirror-zerossl snapshots daily: one page per endpoint (method, URL, parameter table, example response) plus the error-code tables. What the reference does not state lives in patches/. Edit the converter, patches and handwritten protocol, not generated service files; regenerate with pnpm generate zerossl from the workspace root.

Only EAB credential generation is modeled, not ZeroSSL's certificate-management REST API. Certificate issuance uses @distilled.cloud/acme with the ZeroSSL directory and externalAccountBinding: { keyId: eab.eab_kid, hmacKey: eab.eab_hmac_key }. Callers own challenge solving, renewal, and secure credential storage. Retry behavior uses the shared SDK policy and can be configured via ZeroSsl.Retry.

版本与发布记录

@distilled.cloud/zerossl 共发布 8 个版本,首次发布于 2026/10/02;过去 12 个月发布了 8 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.0.0-rc.19latest2026/11/12今天
1.0.0-rc.182026/11/039 天前
1.0.0-rc.172026/10/2419 天前
1.0.0-rc.162026/10/2320 天前
1.0.0-rc.152026/10/1330 天前
1.0.0-rc.142026/10/1330 天前

其他发布通道:placeholder → 0.0.0-placeholder。

关于 @distilled.cloud/zerossl 的常见问题

如何安装 @distilled.cloud/zerossl?

在项目目录运行 npm install @distilled.cloud/zerossl,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:effect(^4.1.2)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@distilled.cloud/zerossl 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@distilled.cloud/zerossl 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@distilled.cloud/zerossl 可以商用吗?

@distilled.cloud/zerossl 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@distilled.cloud/zerossl 的下载量有多少?

根据 npm 官方下载统计,@distilled.cloud/zerossl 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,440,878 次,日均约 81,363 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@distilled.cloud/zerossl 还在维护吗?

最新版本 1.0.0-rc.19 发布于 2026/11/12(今天);至今共发布 8 个版本,其中过去 12 个月发布了 8 个;首次发布于 2026/10/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。