Files
certforge/src/solver/mod.rs
T
Roman KivalinandClaude Opus 4.6 47fdf010f9 Add HTTP-01 and TLS-ALPN-01 challenge solvers
HTTP-01 solver with two modes:
- Standalone: embedded hyper HTTP server on configurable address
- Webroot: writes token files for an existing web server

TLS-ALPN-01 solver:
- Embedded rustls TLS server with ALPN "acme-tls/1"
- Dynamic certificate resolution per-identifier
- Self-signed cert with critical acmeIdentifier extension (RFC 8737)

Both solvers use rustls/ring crypto backend (no aws-lc-rs dependency).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 19:40:57 +02:00

22 lines
667 B
Rust

pub mod dns01;
pub mod http01;
pub mod tls_alpn01;
use crate::acme::ChallengeInfo;
use crate::error::Result;
/// A challenge solver that can present and clean up ACME challenges.
#[async_trait::async_trait]
pub trait Solver: Send + Sync {
/// Present a challenge to make it available for ACME validation.
async fn present(&self, challenge: &ChallengeInfo) -> Result<()>;
/// Clean up a challenge after validation (success or failure).
async fn cleanup(&self, challenge: &ChallengeInfo) -> Result<()>;
/// Whether this solver needs a DNS propagation delay after presenting.
fn needs_propagation_delay(&self) -> bool {
false
}
}