Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CacheConfig ¶
type Config ¶
type Config struct { WFE struct { DebugAddr string `validate:"omitempty,hostname_port"` // ListenAddress is the address:port on which to listen for incoming // HTTP requests. Defaults to ":80". ListenAddress string `validate:"omitempty,hostname_port"` // TLSListenAddress is the address:port on which to listen for incoming // HTTPS requests. If none is provided the WFE will not listen for HTTPS // requests. TLSListenAddress string `validate:"omitempty,hostname_port"` // Timeout is the per-request overall timeout. This should be slightly // lower than the upstream's timeout when making requests to the WFE. Timeout config.Duration `validate:"-"` ServerCertificatePath string `validate:"required_with=TLSListenAddress"` ServerKeyPath string `validate:"required_with=TLSListenAddress"` AllowOrigins []string ShutdownStopTimeout config.Duration SubscriberAgreementURL string TLS cmd.TLSConfig RAService *cmd.GRPCClientConfig SAService *cmd.GRPCClientConfig // GetNonceService is a gRPC config which contains a single SRV name // used to lookup nonce-service instances used exclusively for nonce // creation. In a multi-DC deployment this should refer to local // nonce-service instances only. GetNonceService *cmd.GRPCClientConfig `validate:"required"` // RedeemNonceService is a gRPC config which contains a list of SRV // names used to lookup nonce-service instances used exclusively for // nonce redemption. In a multi-DC deployment this should contain both // local and remote nonce-service instances. RedeemNonceService *cmd.GRPCClientConfig `validate:"required"` // NonceHMACKey is a path to a file containing an HMAC key which is a // secret used for deriving the prefix of each nonce instance. It should // contain 256 bits (32 bytes) of random data to be suitable as an // HMAC-SHA256 key (e.g. the output of `openssl rand -hex 32`). In a // multi-DC deployment this value should be the same across all // boulder-wfe and nonce-service instances. NonceHMACKey cmd.HMACKeyConfig `validate:"-"` // NoncePrefixKey is a secret used for deriving the prefix of each nonce // instance. It should contain 256 bits of random data to be suitable as // an HMAC-SHA256 key (e.g. the output of `openssl rand -hex 32`). In a // multi-DC deployment this value should be the same across all // boulder-wfe and nonce-service instances. // // TODO(#7632): Remove this. // // Deprecated: Use NonceHMACKey instead. NoncePrefixKey cmd.PasswordConfig `validate:"-"` // Chains is a list of lists of certificate filenames. Each inner list is // a chain (starting with the issuing intermediate, followed by one or // more additional certificates, up to and including a root) which we are // willing to serve. Chains that start with a given intermediate will only // be offered for certificates which were issued by the key pair represented // by that intermediate. The first chain representing any given issuing // key pair will be the default for that issuer, served if the client does // not request a specific chain. Chains [][]string `validate:"required,min=1,dive,min=2,dive,required"` Features features.Config // DirectoryCAAIdentity is used for the /directory response's "meta" // element's "caaIdentities" field. It should match the VA's "issuerDomain" // configuration value (this value is the one used to enforce CAA) DirectoryCAAIdentity string `validate:"required,fqdn"` // DirectoryWebsite is used for the /directory response's "meta" element's // "website" field. DirectoryWebsite string `validate:"required,url"` // ACMEv2 requests (outside some registration/revocation messages) use a JWS with // a KeyID header containing the full account URL. For new accounts this // will be a KeyID based on the HTTP request's Host header and the ACMEv2 // account path. For legacy ACMEv1 accounts we need to whitelist the account // ID prefix that legacy accounts would have been using based on the Host // header of the WFE1 instance and the legacy 'reg' path component. This // will differ in configuration for production and staging. LegacyKeyIDPrefix string `validate:"required,url"` // GoodKey is an embedded config stanza for the goodkey library. GoodKey goodkey.Config // StaleTimeout determines how old should data be to be accessed via Boulder-specific GET-able APIs StaleTimeout config.Duration `validate:"-"` // AuthorizationLifetimeDays defines how long authorizations will be // considered valid for. The WFE uses this to find the creation date of // authorizations by subtracing this value from the expiry. It should match // the value configured in the RA. AuthorizationLifetimeDays int `validate:"required,min=1,max=397"` // PendingAuthorizationLifetimeDays defines how long authorizations may be in // the pending state before expiry. The WFE uses this to find the creation // date of pending authorizations by subtracting this value from the expiry. // It should match the value configured in the RA. PendingAuthorizationLifetimeDays int `validate:"required,min=1,max=29"` AccountCache *CacheConfig Limiter struct { // Redis contains the configuration necessary to connect to Redis // for rate limiting. This field is required to enable rate // limiting. Redis *bredis.Config `validate:"required_with=Defaults"` // Defaults is a path to a YAML file containing default rate limits. // See: ratelimits/README.md for details. This field is required to // enable rate limiting. If any individual rate limit is not set, // that limit will be disabled. Failed Authorizations limits passed // in this file must be identical to those in the RA. Defaults string `validate:"required_with=Redis"` // Overrides is a path to a YAML file containing overrides for the // default rate limits. See: ratelimits/README.md for details. If // this field is not set, all requesters will be subject to the // default rate limits. Overrides for the Failed Authorizations // overrides passed in this file must be identical to those in the // RA. Overrides string } // MaxNames is the maximum number of subjectAltNames in a single cert. // The value supplied SHOULD be greater than 0 and no more than 100, // defaults to 100. These limits are per section 7.1 of our combined // CP/CPS, under "DV-SSL Subscriber Certificate". The value must match // the CA and RA configurations. MaxNames int `validate:"min=0,max=100"` // CertProfiles is a map of acceptable certificate profile names to // descriptions (perhaps including URLs) of those profiles. NewOrder // Requests with a profile name not present in this map will be rejected. // This field is optional; if unset, no profile names are accepted. CertProfiles map[string]string `validate:"omitempty,dive,keys,alphanum,min=1,max=32,endkeys"` Unpause struct { // HMACKey signs outgoing JWTs for redemption at the unpause // endpoint. This key must match the one configured for all SFEs. // This field is required to enable the pausing feature. HMACKey cmd.HMACKeyConfig `validate:"required_with=JWTLifetime URL,structonly"` // JWTLifetime is the lifetime of the unpause JWTs generated by the // WFE for redemption at the SFE. The minimum value for this field // is 336h (14 days). This field is required to enable the pausing // feature. JWTLifetime config.Duration `validate:"omitempty,required_with=HMACKey URL,min=336h"` // URL is the URL of the Self-Service Frontend (SFE). This is used // to build URLs sent to end-users in error messages. This field // must be a URL with a scheme of 'https://' This field is required // to enable the pausing feature. URL string `validate:"omitempty,required_with=HMACKey JWTLifetime,url,startswith=https://,endsnotwith=/"` } } Syslog cmd.SyslogConfig OpenTelemetry cmd.OpenTelemetryConfig // OpenTelemetryHTTPConfig configures tracing on incoming HTTP requests OpenTelemetryHTTPConfig cmd.OpenTelemetryHTTPConfig }
Click to show internal directories.
Click to hide internal directories.