Skip to main content

Crate acmex

Crate acmex 

Source
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