Crates.io | racme |
lib.rs | racme |
version | |
source | src |
created_at | 2025-02-01 12:05:40.705594 |
updated_at | 2025-02-03 10:05:07.274261 |
description | Rust 庫,提供與 ACME 協議互動的功能,支援自動化憑證管理,適用於 Let's Encrypt 等 CA。 |
homepage | |
repository | https://github.com/YuFireWhisper/racme.git |
max_upload_size | |
id | 1538391 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
本庫提供與 ACME 服務(例如 Let's Encrypt)交互的功能,主要涵蓋以下兩大模組:
使用者可以通過兩大主要 API 來完成證書申請流程:
帳戶管理(account
模組):
使用 [Account::new
] 或 [AccountBuilder
] 建立 ACME 帳戶,該過程會自動處理密鑰對生成、目錄交互與帳戶註冊,並將相關資料持久化存儲。
訂單管理(order
模組):
使用 [Order::new
] 創建新訂單,然後透過 [Order::finalize
]、[Order::validate_challenge
] 與 [Order::download_certificate
] 進行訂單的最終確認和證書下載。
如需使用 DNS 驗證,可搭配 [Order::dns_provider
] 配置 Cloudflare 提供的 DNS TXT 記錄。
以下是一個簡單的示例,展示如何使用該庫完成 ACME 帳戶與訂單的基本操作:
use acme_lib::{account::Account, order::{Order, DnsProvider}};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// 1. 創建 ACME 帳戶
let mut account = Account::new("user@example.com")?;
// 2. 為指定域名建立訂單
let domain = "example.com";
let mut order = Order::new(&mut account, domain)?;
// 3. 如使用 DNS 驗證,先使用 Cloudflare 配置 DNS
order = order.dns_provider(DnsProvider::Cloudflare, "your-cloudflare-api-token")?;
// 4. 驗證挑戰(假設使用 DNS-01 挑戰)
order = order.validate_challenge(&account, order::ChallengeType::Dns01)?;
// 5. 當訂單處於 Ready 狀態,提交 CSR 以最終確認訂單
order.finalize(&account)?;
// 6. 下載證書
order.download_certificate(&account)?;
Ok(())
}
更多詳細 API 說明請參考各個模組的文檔。