pub struct AcmeConfig {
pub domains: Vec<String>,
pub directory_url: String,
pub contact: Vec<String>,
pub challenge: AcmeChallenge,
pub staging: bool,
pub state_dir: String,
}Expand description
SEC-02: ACME (Let’s Encrypt) certificate automation configuration. The gateway acts as an ACME client: orders certificates for the configured domains, completes the challenge (HTTP-01 or TLS-ALPN-01), and installs the issued certificates into the hot-reloadable TLS termination/SNI resolver. Renewal runs automatically before expiry.
Fields§
§domains: Vec<String>The domains to obtain certificates for. At least one must be present (validation rejects an empty list).
directory_url: StringThe ACME directory URL. Defaults to Let’s Encrypt production
(https://acme-v02.api.letsencrypt.org/directory). Set to the
staging directory (https://acme-staging-v02.api.letsencrypt.org/directory)
for testing to avoid rate limits.
contact: Vec<String>Contact email addresses registered with the ACME account. Let’s Encrypt requires at least one for production issuance.
challenge: AcmeChallengeChallenge type: http-01 (serves a token over HTTP on port 80)
or tls-alpn-01 (serves a challenge cert over TLS-ALPN on port
443). Default tls-alpn-01 (no separate HTTP listener needed).
staging: boolUse the staging directory instead of production. When true,
directory_url is overridden to the Let’s Encrypt staging
endpoint. Staging certs are NOT trusted by browsers — use for
testing only. Default false.
state_dir: StringPath to the directory where ACME state is persisted (account
key, issued certificates). The gateway must have read/write
access. Defaults to ./acme-state.
Trait Implementations§
Source§impl Clone for AcmeConfig
impl Clone for AcmeConfig
Source§fn clone(&self) -> AcmeConfig
fn clone(&self) -> AcmeConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AcmeConfig
impl Debug for AcmeConfig
Source§impl<'de> Deserialize<'de> for AcmeConfig
impl<'de> Deserialize<'de> for AcmeConfig
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>,
Source§impl JsonSchema for AcmeConfig
impl JsonSchema for AcmeConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for AcmeConfig
impl PartialEq for AcmeConfig
Source§impl Serialize for AcmeConfig
impl Serialize for AcmeConfig
impl StructuralPartialEq for AcmeConfig
Auto Trait Implementations§
impl Freeze for AcmeConfig
impl RefUnwindSafe for AcmeConfig
impl Send for AcmeConfig
impl Sync for AcmeConfig
impl Unpin for AcmeConfig
impl UnwindSafe for AcmeConfig
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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