pub struct AcmeManager { /* private fields */ }acme only.Expand description
Manages the ACME lifecycle: initial provisioning and automatic renewal.
Implementations§
Source§impl AcmeManager
impl AcmeManager
pub fn new(config: AcmeConfig) -> AcmeManager
Sourcepub async fn provision_if_needed(&self) -> Result<(), String>
pub async fn provision_if_needed(&self) -> Result<(), String>
Provision a certificate if there is none, or renew it when it’s due
(see check).
Sourcepub async fn provision(&self) -> Result<(), String>
pub async fn provision(&self) -> Result<(), String>
Provision a new certificate unconditionally.
Sourcepub async fn provision_until_ready(&self)
pub async fn provision_until_ready(&self)
Startup provisioning that doesn’t give up: retries
provision_if_needed with exponential
backoff (30s doubling to 15 min) until a certificate is in place —
e.g. while DNS for a new domain is still propagating. Without a
certificate the TLS listener has nothing to serve.
Sourcepub async fn run_renewal_loop(self)
pub async fn run_renewal_loop(self)
Background renewal loop: checks at most every
RWS_CONFIG_ACME_RENEW_CHECK_INTERVAL_SECS (default 12 hours), sooner
when renewal is due earlier or the CA’s renewal information asks to be
fetched again; after a failure it retries within an hour. After a
renewal it sends SIGHUP to itself (Unix) so the running server reloads
the TLS certificate — only then (it used to on every check).
Auto Trait Implementations§
impl Freeze for AcmeManager
impl RefUnwindSafe for AcmeManager
impl Send for AcmeManager
impl Sync for AcmeManager
impl Unpin for AcmeManager
impl UnsafeUnpin for AcmeManager
impl UnwindSafe for AcmeManager
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> 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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
map-response-body only.Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
trace only.Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
trace only.