Documentation
¶
Index ¶
Constants ¶
View Source
const ( // DefaultShutdownTimeout is the default ShutdownTimeout (see Config). DefaultShutdownTimeout = time.Second * 10 )
Variables ¶
This section is empty.
Functions ¶
func BaseTLSConfig ¶
BaseTLSConfig returns a tls.Config with some good default settings for security.
Types ¶
type CertMagicOnDemandDecisionFunc ¶
CertMagicOnDemandDecisionFunc is a concrete type for OnDemandConfig.DecisionFunc in the certmagic package.
type Config ¶
type Config struct {
// Name is the name of the server. It is only used for logging. It can
// be empty.
Name string
// Address is the address to bind the server to. It must be set.
Address string
// AddressTLS is the address to bind the https server to. It must be set, but is not used if TLS is not configured.
AddressTLS string
// ProxyAddressTLS is the address to which the https server that handles PROXY protocol requests is bound.
// It is optional and is not used if TLS is not configured.
ProxyAddressTLS string
// Whether requests and responses are logged or not. Sometimes you might provide your own logging middleware instead.
TrafficLogging bool
// TLSConfig is the TLS configuration for the server. It is optional.
TLSConfig *TLSConfig
// ShutdownTimeout controls how long to wait for requests to finish before
// returning from Run() after the context is canceled. It defaults to
// 10 seconds if unset. If set to a negative value, the server will be
// closed immediately.
ShutdownTimeout time.Duration
// StartupCheckConfig configures a startup check that must pass in order for
// servers to start listening.
StartupCheckConfig StartupCheckConfig
}
Config holds the HTTP server configuration.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server is the HTTP server.
architecture: Endpoint
func New ¶
func New(log *zap.Logger, handler http.Handler, decisionFunc CertMagicOnDemandDecisionFunc, config Config) (*Server, error)
New creates a new URL Service Server.
func (*Server) ProxyAddrTLS ¶ added in v1.72.0
ProxyAddrTLS returns the TLS address for PROXY protocol requests.
type StartupCheckConfig ¶
StartupCheckConfig provides startup check configuration.
type TLSConfig ¶
type TLSConfig struct {
// CertMagic obtains and renews TLS certificates and staples OCSP responses
// Setting this to true will mean the server obtains certificate through Certmagic
// and no other config such as CertDir, or CertFile will be considered.
CertMagic bool
// CertMagicKeyFile is a path to a file containing the CertMagic service account key.
CertMagicKeyFile string
// CertMagicDNSChallengeWithGCloudDNS is whether to disable HTTP and TLS
// ALPN challenges and perform the DNS challenge with Google Cloud DNS (no
// other providers are supported at the moment).
CertMagicDNSChallengeWithGCloudDNS bool
// CertMagicDNSChallengeWithGCloudDNSProject is the project where the Google
// Cloud DNS zone exists.
CertMagicDNSChallengeWithGCloudDNSProject string
// Domain to set the TXT record on, to delegate the challenge to a different
// domain.
CertMagicDNSChallengeOverrideDomain string
// CertMagicEmail is the email address to use when creating an ACME account
CertMagicEmail string
// CertMagicTestIssuer is optional configuration to set a testing ACME issuer.
// If configured, this will be the only issuer used.
CertMagicTestIssuer *TestIssuerConfig
// CertMagicStaging use staging CA endpoints
CertMagicStaging bool
// CertMagicBucket bucket to use for certstorage
CertMagicBucket string
// TierServiceIdentity is the tier querying service identity config
TierServiceIdentity identity.Config
// TierCacheExpiration is the expiration time for the tier querying service cache
TierCacheExpiration time.Duration
// TierCacheCapacity is the tier querying service cache size
TierCacheCapacity int
// SkipPaidTierAllowlist is a list of domain names to which bypass paid tier queries.
// If any one value is set to "*" then the paid tier checking is disabled entirely.
SkipPaidTierAllowlist []string
// CertMagicPublicURLs is a list of URLs to always issue certificates for.
//
// Typically, these are URLs that the service will be mainly reached
// through, like link.storjshare.io or *.gateway.storjshare.io, etc.
CertMagicPublicURLs []string
// ConfigDir is a path for storing certificate cache data for Let's Encrypt.
ConfigDir string
// CertDir provides a path containing one or more certificates that should
// be loaded. Certs and key files must have the same filename so they can be
// paired, e.g. mycert.key, and mycert.crt. This config setting is mutually
// exclusive from CertFile and KeyFile.
CertDir string
// CertFile is a path to a file containing a corresponding cert for KeyFile.
CertFile string
// KeyFile is a path to a file containing a corresponding key for CertFile.
KeyFile string
// Ctx context for the oauth2 package which gcslock and gcsops use.
// oauth2 stores the context passed into its constructors.
Ctx context.Context
}
TLSConfig is a struct to handle the preferred/configured TLS options.
type TestIssuerConfig ¶
type TestIssuerConfig struct {
// CA is the address to the test ACME issuer.
CA string
// CertificatePath is a filesystem path to the CA issuer certificate.
CertificatePath string
// Resolver is an address to a preferred DNS resolver. If not given, it
// defaults to the system resolver.
Resolver string
}
TestIssuerConfig is configuration to a test ACME server, which if defined will issue certs from that instead of any other issuers.
Click to show internal directories.
Click to hide internal directories.