pub struct OnDemandTlsConfig {
pub enabled: bool,
pub challenge: OnDemandChallenge,
pub directory_url: Option<String>,
pub contact_email: Option<String>,
pub max_inflight: Option<usize>,
pub negative_ttl_secs: Option<u64>,
pub rate_limit_per_hour: Option<u32>,
}Expand description
[serve.on_demand_tls] — on-demand per-SNI TLS issuance (cap-req 03). Off unless enabled. When
on, an unknown-but-#02-verified SNI triggers issuance at handshake time (the client retries once
the cert is warm); an unauthorized SNI is refused, so a flood of unknown names can’t become an ACME
storm. The ACME account + issued certs persist in the control-plane cert store and replicate across
the cluster (the leader issues; followers serve the replicated cert).
Fields§
§enabled: boolMaster toggle. false (default) ⇒ the whole feature is off.
challenge: OnDemandChallengeHow to prove control of a name to the CA. tls-alpn-01 (default) validates on the 443 edge (no
extra port); dns-01 uses the node’s configured ACME DNS provider (an operator-controlled zone).
directory_url: Option<String>ACME directory URL. Absent ⇒ the ACME client default (Let’s Encrypt production).
contact_email: Option<String>ACME account contact email (optional).
max_inflight: Option<usize>Max concurrent in-flight issuances (global). Absent ⇒ 4.
negative_ttl_secs: Option<u64>How long a refused/failed SNI is negatively cached (seconds). Absent ⇒ 300.
rate_limit_per_hour: Option<u32>Max CA orders per rolling hour (the account rate-limit floor). Absent ⇒ 50; 0 ⇒ unlimited.
Trait Implementations§
Source§impl Clone for OnDemandTlsConfig
impl Clone for OnDemandTlsConfig
Source§impl Debug for OnDemandTlsConfig
impl Debug for OnDemandTlsConfig
Source§impl Default for OnDemandTlsConfig
impl Default for OnDemandTlsConfig
Source§impl<'de> Deserialize<'de> for OnDemandTlsConfigwhere
OnDemandTlsConfig: Default,
impl<'de> Deserialize<'de> for OnDemandTlsConfigwhere
OnDemandTlsConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for OnDemandTlsConfig
impl RefUnwindSafe for OnDemandTlsConfig
impl Send for OnDemandTlsConfig
impl Sync for OnDemandTlsConfig
impl Unpin for OnDemandTlsConfig
impl UnsafeUnpin for OnDemandTlsConfig
impl UnwindSafe for OnDemandTlsConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more