介绍
le-acme-core 是一个用于实现 ACME 协议的 Node.js 库,可以帮助我们在我们的服务器上自动签发和更新 SSL/TLS 证书。它是 Let's Encrypt 提供的一个开源项目,是 Let's Encrypt 签发和续订 HTTPS 证书的核心库。
安装和配置
使用该包需要先安装 Node.js,并在项目中安装该包。可以使用 npm 进行安装,在终端中输入以下命令即可:
npm install le-acme-core --save
在安装完该包后,我们需要配置一些参数来启用 ACME 协议。我们需要指定 ACME 服务器的地址、账户秘钥等。
初始化
可以像这样初始化一个 ACME client:
-- -------------------- ---- ------- ----- ---------------- - ------------------------ ----- ---------- - ------------------ ------------- ------------------- ----------- - ---- ---------- ------- -------------------------- ------- ---------- -- -------------- - -------------- - -- ------ -------- ------------------ -------- ------- - -- --- -- -- -- ---
其中,我们通过 packageAgent 指定了我们的客户端的域名地址,这将加到我们在 ACME 服务器上的请求头中,并且它还将用于接受 HTTP-01 挑战的响应。
获取证书
我们首先需要完成 ACME 协议的 “权限验证” 步骤,验证我们是域名的拥有者。
let authorization = await acmeClient.requestAuthorization('example.org');
如果请求成功,authorization 对象中就包含了用于验证的 HTTP-01 或 DNS-01 字段。
接下来,我们需要为我们的域名申请证书:
let cert = await acmeClient.requestCertificate(['example.com'], [authorization]);
上面的第一个参数表示我们的 SSL 证书申请所包含的域名。第二个参数为请求的权限验证。
上述步骤完成后,我们就可以开启 HTTPS 服务了。
const https = require('https'); const tls = require('tls'); const certificate = tls.createSecureContext({ key: cert.privkey, cert: cert.cert + '\n' + cert.chain, }); const server = https.createServer({ SNICallback: (servername, cb) => cb(null, certificate) });
这个时候,我们的服务器就会自动请求 SSL 证书,并且自动更新证书。
总结
本文讲解了如何使用 npm 包 le-acme-core 实现 SSL 证书的自动签发和更新。介绍了初始化 ACME client 的步骤,以及如何获取证书。希望能够对大家有所帮助。最后附上示例代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/145651