1 个不稳定版本
0.1.0 | 2022年12月2日 |
---|
#14 在 #ssl-certificate
60KB
1.5K SLoC
remote-ssl-renewal
一个命令行工具,用于在 DNS 在其他地方托管时续订 CDN 的 Let's Encrypt SSL 证书。
该工具设置了 Let's Encrypt DNS 挑战,添加适当的 DNS 条目以响应挑战,并将生成的证书添加到 CDN 主机。
我现在正在用它为 DigitalOcean Spaces CDN 生成 SSL 证书,该域名的 DNS 通过 Vercel 管理。
安装
目前,只能使用 Rust 工具链的 cargo
命令安装。您可以使用 cargo install remote-ssl-renewal
,或者克隆此仓库并自行构建。
概念
该工具包含四个概念,这些概念结合在一起构成了完整的 SSL 续订工作流程。
账户 对应于 Let's Encrypt 账户,本质上只是给他们提供一个联系邮箱。
DNS 提供商 是管理您的域名的 DNS 条目的服务。该工具设计得可以轻松添加新的提供商,但目前只支持 Vercel。
端点 是托管您的文件的服务,SSL 证书应上传到该服务。目前该工具支持 DigitalOcean Spaces CDN。
最后,子域名 是端点将文件从其中提供的服务器,以及该工具应为其生成 SSL 证书的子域名。每个子域名都链接到一个账户、DNS 提供商和端点。
用法
首次启动时,您可以使用 remote-ssl-renewal init
命令生成上述每个实体。之后,您可以使用 remote-ssl-renewal renew
命令续订您的证书。此命令只会续订在 14 天内到期的证书,因此可以每天运行而不用担心违反 Let's Encrypt 速率限制。
可以通过运行 remote-ssl-renewal --help
命令发现完整的命令集。
数据存储
数据存储在您操作系统的标准配置目录中本地的 SQLite3 数据库中,路径为 remote-ssl-renewal/data.sqlite3
。您系统的具体目录可以在 dirs crate 的此文档 中找到。
例如,在MacOS上,数据库将存储在 $HOME/Library/Application Support/remote-ssl-renewal/data.sqlite3
。
依赖关系
~70MB
~1.5M SLoC