pub struct LocalCaConfig {
pub cert_path: String,
pub key_path: String,
pub key_type: String,
pub leaf_validity_days: u64,
pub crl_path: String,
pub crl_distribution_points: Vec<String>,
pub ca_issuer_urls: Vec<String>,
pub subject: LocalCaSubjectConfig,
pub key_source: String,
pub pkcs11: Pkcs11Config,
}Expand description
Configuration for the persistent local-CA signer backend.
Fields§
§cert_path: String§key_path: String§key_type: String§leaf_validity_days: u64§crl_path: String§crl_distribution_points: Vec<String>Where a relying party can fetch the CRL, written into every issued leaf
as cRLDistributionPoints (RFC 5280 §4.2.1.13). Empty (the default)
emits no extension at all.
Not derived from server.base_url: the value is frozen into every
certificate signed while it is set, so a base_url change or a profile
rename would silently break certificates already issued — and the
per-profile /crl sits behind that profile’s filter chain, which an
address-based policy will refuse to a relying party. Several entries
mean one CRL reachable at several places, not several CRLs.
Validated (and encoded) in LocalCa::load_or_generate, not here: the
list-key round-trip test feeds placeholder values through every entry of
LIST_KEYS.
ca_issuer_urls: Vec<String>Where a relying party can fetch this CA’s own certificate, written into
every issued leaf as authorityInfoAccess / caIssuers (RFC 5280
§4.2.2.1). Empty (the default) emits no extension at all. Same
“operator names it, nothing derives it” reasoning as
crl_distribution_points above.
subject: LocalCaSubjectConfigOverrides for the autogenerated CA’s own X.509 Subject. Read only
when the CA is generated (no existing cert_path/key_path) — an
already-on-disk CA’s Subject is whatever it already has, re-signing
nothing.
key_source: StringWhere the issuing private key lives: "file" (the default, and the
only behaviour that existed before this key) or "pkcs11".
A selector string rather than a pkcs11.enabled flag, matching
signer.backend and signer.relay.challenge_strategy: it makes
“both configured” unrepresentable instead of a precedence rule.
pkcs11: Pkcs11ConfigThe token to sign with when key_source = "pkcs11". Ignored
otherwise — Config cannot tell an unset table from a defaulted one,
so validation lives in LocalCa::load_or_generate, where the selector
that makes these fields required is also in scope.
Trait Implementations§
Source§impl Clone for LocalCaConfig
impl Clone for LocalCaConfig
Source§fn clone(&self) -> LocalCaConfig
fn clone(&self) -> LocalCaConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LocalCaConfig
impl Debug for LocalCaConfig
Source§impl Default for LocalCaConfig
impl Default for LocalCaConfig
Source§impl<'de> Deserialize<'de> for LocalCaConfigwhere
LocalCaConfig: Default,
impl<'de> Deserialize<'de> for LocalCaConfigwhere
LocalCaConfig: 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 LocalCaConfig
impl RefUnwindSafe for LocalCaConfig
impl Send for LocalCaConfig
impl Sync for LocalCaConfig
impl Unpin for LocalCaConfig
impl UnsafeUnpin for LocalCaConfig
impl UnwindSafe for LocalCaConfig
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
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