pub struct EstConfig {Show 14 fields
pub simpleenroll: bool,
pub simplereenroll: bool,
pub fullcmc: bool,
pub cmc_truststore_file: Option<String>,
pub serverkeygen: bool,
pub csrattrs: bool,
pub default_profile: Option<String>,
pub csr_attributes: Vec<String>,
pub csr_template: Option<CsrTemplate>,
pub labels: Vec<EstLabelConfig>,
pub disconnected: bool,
pub disconnected_retry_after_secs: u64,
pub renewal_window_days: u32,
pub renewal_retry_after_secs: u64,
}Expand description
[est] section — global EST protocol settings.
Fields§
§simpleenroll: boolEnable the /simpleenroll endpoint (RFC 7030 §4.2).
simplereenroll: boolEnable the /simplereenroll endpoint (RFC 7030 §4.2.2).
fullcmc: boolEnable the /fullcmc endpoint (RFC 7030 §4.3).
Full CMC is rarely needed; disabled by default.
cmc_truststore_file: Option<String>PEM file containing trust anchors for CMC RA signer verification.
When set, /fullcmc verifies the CMS SignedData signature against
these certificates instead of only the target CA cert. This allows
RA certificates issued by a different CA or intermediate to be
accepted. When absent, the target CA certificate is used as the
sole trust anchor.
serverkeygen: boolEnable the /serverkeygen endpoint (RFC 7030 §4.4).
Server-side key generation requires HSM integration. Disabled by default.
csrattrs: boolEnable the /csrattrs endpoint (RFC 7030 §4.5).
default_profile: Option<String>Default enrollment profile applied when no label is specified.
When absent, enrollment requests without a label use the default CA and authentication policy.
csr_attributes: Vec<String>CSR attribute hints returned by /csrattrs.
Each entry is an OID string (e.g., "1.2.840.113549.1.9.14" for
the Certificate Extensions Request attribute).
csr_template: Option<CsrTemplate>CSR template mode (draft-ietf-lamps-rfc7030-csrattrs / RFC 9908).
When set, the /csrattrs response includes a
CertificationRequestInfoTemplate attribute that tells the client
which subject DN fields, key algorithm, and extensions are required.
This coexists with the OID-list mode.
labels: Vec<EstLabelConfig>Per-label enrollment configurations.
disconnected: boolDisconnected mode: accept enrollment requests without upstream CA connectivity (RHELBU-3536 R7-Disconnected).
When true, the server queues CSRs for deferred signing and
returns 202 Accepted with a Retry-After header instead of
the signed certificate.
disconnected_retry_after_secs: u64Retry-After value (seconds) returned in disconnected mode. Default: 300 (5 minutes).
renewal_window_days: u32Number of days before certificate expiry to start the suggested renewal window (draft-ietf-lamps-est-renewal-info).
The renewal window starts at not_after - renewal_window_days and
ends one day before not_after.
renewal_retry_after_secs: u64Retry-After value (seconds) returned in renewal-info responses
to control client polling frequency.
Default: 86400 (1 day).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for EstConfig
impl<'de> Deserialize<'de> for EstConfig
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 EstConfig
impl RefUnwindSafe for EstConfig
impl Send for EstConfig
impl Sync for EstConfig
impl Unpin for EstConfig
impl UnsafeUnpin for EstConfig
impl UnwindSafe for EstConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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