tls

package
v0.49.0 Latest Latest
Warning

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

Go to latest
Published: May 31, 2025 License: Apache-2.0 Imports: 21 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(ctx context.Context, key, cert string, waitConfig FileWaitConfig) ([]tls.Certificate, error)

func CertificatesFromSinglePEMFile added in v0.37.0

func CertificatesFromSinglePEMFile(ctx context.Context, 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(ctx context.Context, 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(ctx context.Context, 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(ctx context.Context, 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