tls

package
v0.41.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2024 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CertificateFromKeyAndCertificateFiles added in v0.37.0

func CertificateFromKeyAndCertificateFiles(key, cert string, waitConfig FileWaitConfig) ([]tls.Certificate, error)

func CertificatesFromSinglePEMFile added in v0.37.0

func CertificatesFromSinglePEMFile(singlePEMFile string, waitConfig FileWaitConfig) ([]tls.Certificate, error)

func CreateAndSaveSelfSignedKeyPair

func CreateAndSaveSelfSignedKeyPair(config SelfSignedConfig, certPath, keyPath string) (*tls.Certificate, *x509.CertPool, error)

func CreateSelfSignedKeyPair

func CreateSelfSignedKeyPair(config SelfSignedConfig) (*tls.Certificate, *x509.CertPool, error)

pulled from inet.af/tcpproxy

func LoadCertPoolFromFile

func LoadCertPoolFromFile(certPoolPath string) (*x509.CertPool, error)

func LoadKeyPairAndCertsFromFile

func LoadKeyPairAndCertsFromFile(path string) (*tls.Certificate, error)

LoadKeyPairAndCertsFromFile From: https://gist.github.com/ukautz/cd118e298bbd8f0a88fc LoadKeyPairAndCertsFromFile reads file, divides into key and certificates

func LoadKeyPairFromFiles

func LoadKeyPairFromFiles(certPath, keyPath string) (*tls.Certificate, error)

func LoadX509CertFromFile

func LoadX509CertFromFile(certPath string) (*x509.Certificate, error)

func NewAutocertManagerFromConfig added in v0.37.0

func NewAutocertManagerFromConfig(c AutoCertConfig) *autocert.Manager

func NewAutocertTLSConfig added in v0.37.0

func NewAutocertTLSConfig(c AutoCertConfig) (*tls.Config, error)

func NewClientTLSConfig added in v0.37.0

func NewClientTLSConfig(c ClientConfig) (*tls.Config, error)

func NewLocalTLSConfig added in v0.37.0

func NewLocalTLSConfig(config LocalConfig) (*tls.Config, error)

func NewSelfSignedTLSConfig added in v0.37.0

func NewSelfSignedTLSConfig(config SelfSignedConfig) (*tls.Config, error)

func NewServerTLSConfig added in v0.37.0

func NewServerTLSConfig(c ServerConfig) (*tls.Config, error)

func SaveTLSCertificateToFile added in v0.37.6

func SaveTLSCertificateToFile(cert *tls.Certificate, filename string, perm int) error

SaveTLSCertificateToFile saves a tls.Certificate to a file

func SaveTLSCertificateToFiles

func SaveTLSCertificateToFiles(cert *tls.Certificate, certPath, keyPath string) error

SaveTLSCertificateToFiles saves a tls.Certificate to a certificate and key file

Types

type AutoCertConfig

type AutoCertConfig struct {
	CacheDirectory string   `mapstructure:"cache-directory" json:",omitempty"`
	Email          string   `mapstructure:"email" json:",omitempty"`
	AllowedHosts   []string `mapstructure:"allowed-hosts" json:",omitempty"`
	DirectoryURL   string   `mapstructure:"directory-url" json:",omitempty"`
}

type CertificateSubject added in v0.37.0

type CertificateSubject struct {
	Country            []string `mapstructure:"c" json:"country,omitempty"`
	Organization       []string `mapstructure:"o" json:"organization,omitempty"`
	OrganizationalUnit []string `mapstructure:"ou" json:"organizational_unit,omitempty"`
	Locality           []string `mapstructure:"l" json:"locality,omitempty"`
	Province           []string `mapstructure:"st" json:"province,omitempty"`
	StreetAddress      []string `mapstructure:"street" json:"street_address,omitempty"`
	PostalCode         []string `mapstructure:"postalcode" json:"postal_code,omitempty"`
	SerialNumber       string   `mapstructure:"serialnumber" json:"serial_number,omitempty"`
	CommonName         string   `mapstructure:"cn" json:"common_name,omitempty"`
}

type ClientConfig

type ClientConfig struct {
	RootCAFile         string `mapstructure:"root-ca-file" json:",omitempty"`
	Certificate        string `mapstructure:"cert" json:",omitempty"`
	Key                string `mapstructure:"key" json:",omitempty"`
	InsecureSkipVerify bool   `mapstructure:"insecure-skip-verify"`
}

type ConfigFunc added in v0.37.0

type ConfigFunc func() (*tls.Config, error)

func NewAutocertTLSConfigFunc added in v0.37.0

func NewAutocertTLSConfigFunc(c AutoCertConfig) ConfigFunc

func NewLocalTLSConfigFunc added in v0.37.0

func NewLocalTLSConfigFunc(c LocalConfig) ConfigFunc

func NewSelfSignedTLSConfigFunc added in v0.37.0

func NewSelfSignedTLSConfigFunc(c SelfSignedConfig) ConfigFunc

type FileWaitConfig added in v0.37.0

type FileWaitConfig struct {
	WaitInterval uint `mapstructure:"file-wait-interval" json:",omitempty"`
	WaitMax      uint `mapstructure:"file-wait-max" json:",omitempty"`
}

type LocalConfig added in v0.37.0

type LocalConfig struct {
	SinglePEMFile  string         `mapstructure:"single-pem-file" json:",omitempty"`
	Certificate    string         `mapstructure:"cert" json:",omitempty"`
	Key            string         `mapstructure:"key" json:",omitempty"`
	FileWaitConfig FileWaitConfig `mapstructure:"file-wait-config,squash" json:",omitempty,squash"`
}

type SANConfig added in v0.37.0

type SANConfig struct {
	DNSNames    []string `mapstructure:"dns-names" json:"dns_names,omitempty"`
	IPAddresses []string `mapstructure:"ip-addresses" json:"ip_addresses,omitempty"`
}

type SelfSignedConfig

type SelfSignedConfig struct {
	Subject        CertificateSubject `mapstructure:"subject" json:"subject,omitempty"`
	SANConfig      SANConfig          `mapstructure:"san-config" json:"san_config,omitempty"`
	Duration       string             `mapstructure:"duration" json:"duration,omitempty"`
	IsCA           bool               `mapstructure:"ca" json:"is_ca,omitempty"`
	Bits           int                `mapstructure:"bits" json:"bits,omitempty"`
	CacheDirectory string             `mapstructure:"cache-directory" json:"cache_directory,omitempty"`
	Alias          string             `mapstructure:"alias" json:"alias,omitempty"`
}

type ServerConfig

type ServerConfig struct {
	ServerName string `mapstructure:"server-name"`

	AutoCertConfig AutoCertConfig `mapstructure:"auto-cert-config" json:",omitempty"`

	SelfSignedConfig SelfSignedConfig `mapstructure:"self-signed-config" json:",omitempty"`

	LocalConfig LocalConfig `mapstructure:"local" json:",omitempty"`

	ClientAuthType string `mapstructure:"client-auth-type" json:",omitempty"`
	ClientCAFile   string `mapstructure:"client-ca-file" json:",omitempty"`

	NextProtos    []string `mapstructure:"next-protos"`
	TLSMinVersion string   `mapstructure:"tls-min-version"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL