Expand description
§AcmeX - ACME v2 Client Library
A comprehensive Rust library for interacting with ACME v2 servers (RFC 8555). Supports Let’s Encrypt, Google Trust Services, ZeroSSL, and custom ACME implementations.
§Features
- Complete ACME v2 Protocol Support: Full RFC 8555 implementation
- Multiple Challenge Types: HTTP-01, DNS-01, TLS-ALPN-01
- Account Management: Registration, key rollover, deactivation
- Order Management: Certificate ordering and finalization
- Storage Flexibility: File-based (default) or Redis-backed storage
- Async/Await: Built on Tokio for high performance
§Quick Start
use acmex::prelude::*;
#[tokio::main]
async fn main() -> acmex::Result<()> {
// Create a client for Let's Encrypt staging
let config = AcmeConfig::new("https://acme-staging-v02.api.letsencrypt.org/directory");
// ... use the client
Ok(())
}Re-exports§
pub use account::Account;pub use account::AccountManager;pub use account::KeyPair;pub use account::KeyRollover;pub use ca::CAConfig;pub use ca::CertificateAuthority;pub use ca::Environment;pub use certificate::CertificateChain;pub use challenge::CachingDnsResolver;pub use challenge::ChallengeSolver;pub use challenge::ChallengeSolverRegistry;pub use challenge::Dns01Solver;pub use challenge::DnsCache;pub use challenge::DnsProvider;pub use challenge::Http01Solver;pub use challenge::MockDnsProvider;pub use challenge::TlsAlpn01Solver;pub use client::AcmeClient;pub use client::AcmeConfig;pub use client::CertificateBundle;pub use config::AcmeSettings;pub use config::ChallengeSettings;pub use config::Config;pub use config::RenewalSettings;pub use config::StorageSettings;pub use error::AcmeError;pub use error::Result;pub use metrics::HealthStatus;pub use metrics::MetricsRegistry;pub use notifications::EventType;pub use notifications::WebhookClient;pub use notifications::WebhookConfig;pub use notifications::WebhookEvent;pub use notifications::WebhookManager;pub use orchestrator::CertificateProvisioner;pub use orchestrator::DomainValidator;pub use orchestrator::Orchestrator;pub use order::Authorization;pub use order::CertificateRevocation;pub use order::Challenge;pub use order::CsrGenerator;pub use order::FinalizationRequest;pub use order::NewOrderRequest;pub use order::Order;pub use order::OrderManager;pub use order::parse_certificate_chain;pub use order::verify_certificate_domains;pub use protocol::Directory;pub use protocol::DirectoryManager;pub use protocol::Jwk;pub use protocol::JwsSigner;pub use protocol::NonceManager;pub use renewal::RenewalHook;pub use renewal::SimpleRenewalScheduler;pub use scheduler::AdvancedRenewalScheduler;pub use scheduler::CleanupScheduler;pub use scheduler::RenewalScheduler;pub use server::HealthCheck;pub use server::WebhookHandler;pub use server::start_server;pub use storage::EncryptedStorage;pub use storage::FileStorage;pub use types::AuthorizationStatus;pub use types::ChallengeType;pub use types::Contact;pub use types::Identifier;pub use types::OrderStatus;pub use types::RevocationReason;
Modules§
- account
- ca
- certificate
- challenge
- cli
- client
- config
- crypto
- Cryptographic primitives layer. This module provides foundational cryptographic functionality including key generation, digital signatures, hashing, and various encoding schemes required for the ACME protocol and certificate management.
- dns
- error
- metrics
- notifications
- Webhook notification system for AcmeX
- orchestrator
- Orchestrator module for high-level workflow management
- order
- prelude
- Prelude module with commonly used types
- protocol
- renewal
- scheduler
- Scheduler module for managing periodic tasks like certificate renewal and cleanup.
- server
- storage
- transport
- types