Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // Points in time, mostly used for generating certificates TEN_YEARS_FROM_TODAY = time.Now().AddDate(10, 0, 0) // Default TLS configuration for servers DEFAULT_TLS_SERVER_CONFIG = &tls.Config{ PreferServerCipherSuites: true, CipherSuites: []uint16{ tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA, tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, tls.TLS_RSA_WITH_RC4_128_SHA, tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, }, } )
Functions ¶
This section is empty.
Types ¶
type CertContext ¶
type CertContext struct {
PKFile string
ServerCertFile string
PK *keyman.PrivateKey
ServerCert *keyman.Certificate
}
CertContext encapsulates the certificates used by a Server
func (*CertContext) InitServerCert ¶
func (ctx *CertContext) InitServerCert(host string) (err error)
InitServerCert initializes a PK + cert for use by a server proxy, signed by the CA certificate. We always generate a new certificate just in case.
type Server ¶
type Server struct {
// Addr: listen address in form of host:port
Addr string
// ReadTimeout: (optional) timeout for read ops
ReadTimeout time.Duration
// WriteTimeout: (optional) timeout for write ops
WriteTimeout time.Duration
TLSConfig *tls.Config
Host string // FQDN that is guaranteed to hit this server
CertContext *CertContext // context for certificate management
AllowNonGlobalDestinations bool // if true, requests to LAN, Loopback, etc. will be allowed
StatServer *statserver.Server // optional server of stats
}
func (*Server) ListenAndServe ¶
Click to show internal directories.
Click to hide internal directories.