Struct tokio_rustls_acme::AcmeConfig
source · pub struct AcmeConfig<EC: Debug, EA: Debug = EC> { /* private fields */ }
Expand description
Configuration for an ACME resolver.
The type parameters represent the error types for the certificate cache and account cache.
Implementations§
source§impl AcmeConfig<Infallible, Infallible>
impl AcmeConfig<Infallible, Infallible>
sourcepub fn new(domains: impl IntoIterator<Item = impl AsRef<str>>) -> Self
pub fn new(domains: impl IntoIterator<Item = impl AsRef<str>>) -> Self
Creates a new AcmeConfig instance.
The new AcmeConfig instance will initially have no cache, and its type parameters for
error types will be Infallible
since the cache cannot return an error. The methods to set
a cache will change the error types to match those returned by the supplied cache.
use tokio_rustls_acme::caches::DirCache;
let config = AcmeConfig::new(["example.com"]).cache(DirCache::new("./rustls_acme_cache"));
Due to limited support for type parameter inference in Rust (see RFC213), AcmeConfig::new is not (yet) generic over the AcmeConfig’s type parameters. An uncached instance of AcmeConfig with particular type parameters can be created using NoCache.
use tokio_rustls_acme::caches::NoCache;
let config: AcmeConfig<EC, EA> = AcmeConfig::new(["example.com"]).cache(NoCache::new());
source§impl<EC: 'static + Debug, EA: 'static + Debug> AcmeConfig<EC, EA>
impl<EC: 'static + Debug, EA: 'static + Debug> AcmeConfig<EC, EA>
sourcepub fn client_tls_config(self, client_config: Arc<ClientConfig>) -> Self
pub fn client_tls_config(self, client_config: Arc<ClientConfig>) -> Self
Set custom rustls::ClientConfig
for ACME API calls.
pub fn directory(self, directory_url: impl AsRef<str>) -> Self
pub fn directory_lets_encrypt(self, production: bool) -> Self
pub fn domains(self, contact: impl IntoIterator<Item = impl AsRef<str>>) -> Self
pub fn domains_push(self, contact: impl AsRef<str>) -> Self
sourcepub fn contact(self, contact: impl IntoIterator<Item = impl AsRef<str>>) -> Self
pub fn contact(self, contact: impl IntoIterator<Item = impl AsRef<str>>) -> Self
Provide a list of contacts for the account.
Note that email addresses must include a mailto:
prefix.
sourcepub fn contact_push(self, contact: impl AsRef<str>) -> Self
pub fn contact_push(self, contact: impl AsRef<str>) -> Self
Provide a contact for the account.
Note that an email address must include a mailto:
prefix.
pub fn cache<C: 'static + Cache>(self, cache: C) -> AcmeConfig<C::EC, C::EA>
pub fn cache_compose<CC: 'static + CertCache, CA: 'static + AccountCache>( self, cert_cache: CC, account_cache: CA, ) -> AcmeConfig<CC::EC, CA::EA>
pub fn cache_with_boxed_err<C: 'static + Cache>( self, cache: C, ) -> AcmeConfig<Box<dyn Debug>>
pub fn cache_option<C: 'static + Cache>( self, cache: Option<C>, ) -> AcmeConfig<C::EC, C::EA>
pub fn state(self) -> AcmeState<EC, EA>
sourcepub fn incoming<TCP: AsyncRead + AsyncWrite + Unpin, ETCP, ITCP: Stream<Item = Result<TCP, ETCP>> + Unpin>(
self,
tcp_incoming: ITCP,
alpn_protocols: Vec<Vec<u8>>,
) -> Incoming<TCP, ETCP, ITCP, EC, EA>
pub fn incoming<TCP: AsyncRead + AsyncWrite + Unpin, ETCP, ITCP: Stream<Item = Result<TCP, ETCP>> + Unpin>( self, tcp_incoming: ITCP, alpn_protocols: Vec<Vec<u8>>, ) -> Incoming<TCP, ETCP, ITCP, EC, EA>
Turn a stream of TCP connections into a stream of TLS connections.
Specify supported protocol names in alpn_protocols
, most preferred first. If emtpy (Vec::new()
), we don’t do ALPN.