config

package
v0.6.2 Latest Latest
Warning

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

Go to latest
Published: Nov 2, 2022 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Version2 = "2"

	LetsEncryptURL        = "https://acme-v02.api.letsencrypt.org/directory"
	LetsEncryptStagingURL = "https://acme-staging-v02.api.letsencrypt.org/directory"
)

Variables

View Source
var DefaultSelfSignedOrganizations = []string{"SSL Cert Server Self-Signed"}

Functions

This section is empty.

Types

type ACMEAccount

type ACMEAccount struct {
	Email string `yaml:"email"`
}

type ACMECertificate

type ACMECertificate struct {
	Name          string   `yaml:"name"`
	Account       string   `yaml:"account"`
	DNSCredential string   `yaml:"dns_credential"`
	ForceRSA      bool     `yaml:"force_rsa"`
	Domains       []string `yaml:"domains"`
}

type Config

type Config struct {
	Version string `yaml:"version"`
	Listen  string `yaml:"listen" default:"127.0.0.1:8999"`
	PIDFile string `yaml:"pid_file" default:"ssl-cert-server.pid"`

	Storage struct {
		Type     string      `yaml:"type" default:"dir_cache"`
		DirCache string      `yaml:"dir_cache" default:"./secret-dir"`
		Redis    RedisConfig `yaml:"redis"`
	} `yaml:"storage"`

	SelfSigned struct {
		Enable          bool     `yaml:"enable"`
		CheckDomainName bool     `yaml:"check_domain_name"`
		Domains         []string `yaml:"domains"`
		DomainRegex     []string `yaml:"domain_regex"`
		ValidDays       int      `yaml:"valid_days"`
		Organization    string   `yaml:"organization"`
	} `yaml:"self_signed"`

	Managed struct {
		ReloadInterval string                `yaml:"reload_interval"`
		Certificates   []*ManagedCertificate `yaml:"certificates"`
	} `yaml:"managed"`

	ACME struct {
		DirectoryURL   string           `yaml:"directory_url" default:"https://acme-v02.api.letsencrypt.org/directory"`
		ForceRSA       bool             `yaml:"force_rsa"`
		RenewBefore    int              `yaml:"renew_before" default:"30"`
		DefaultAccount *ACMEAccount     `yaml:"default_account"`
		Accounts       []*ACMEAccount   `yaml:"accounts"`
		DNSCredentials []*DNSCredential `yaml:"dns_credentials"`

		OnDemand struct {
			Domains     []string `yaml:"domains"`
			DomainRegex []string `yaml:"domain_regex"`
		} `yaml:"on_demand"`

		Named struct {
			Certificates []*ACMECertificate `yaml:"certificates"`
		} `yaml:"named"`
	} `yaml:"acme"`
	// contains filtered or unexported fields
}

func LoadConfig

func LoadConfig(fn string) (*Config, error)

func (*Config) CheckCertTypeByDomain

func (c *Config) CheckCertTypeByDomain(domain string) (typ pb.Certificate_Type, name string)

func (*Config) CheckCertTypeByName

func (c *Config) CheckCertTypeByName(name string) (typ pb.Certificate_Type, resultName string)

func (*Config) GeneratePrivateKey

func (c *Config) GeneratePrivateKey(certName string) (crypto.Signer, error)

func (*Config) GetACMEConfig

func (c *Config) GetACMEConfig(certName string) (acc *ACMEAccount, cert *ACMECertificate, err error)

func (*Config) GetDNSCredential

func (c *Config) GetDNSCredential(name string) *DNSCredential

func (*Config) GetManagedCertReloadInterval

func (c *Config) GetManagedCertReloadInterval() time.Duration

func (*Config) GetNamedACMECertificate

func (c *Config) GetNamedACMECertificate(name string) *ACMECertificate

func (*Config) IsManagedCertEnableOCSPStapling

func (c *Config) IsManagedCertEnableOCSPStapling(name string) bool

type DNSCredential

type DNSCredential struct {
	Name         string            `yaml:"name"`
	Provider     string            `yaml:"provider"`
	WaitDuration string            `yaml:"wait_duration"`
	Env          map[string]string `yaml:"env"`
}

type ManagedCertificate

type ManagedCertificate struct {
	Name           string   `yaml:"name"`
	Domains        []string `yaml:"domains"`
	DomainRegex    []string `yaml:"domain_regex"`
	NoOCSPStapling bool     `yaml:"no_ocsp_stapling"`
}

type RedisConfig

type RedisConfig struct {
	Addr   string `yaml:"addr" default:"127.0.0.1:6379"`
	Prefix string `yaml:"prefix"`
}

Jump to

Keyboard shortcuts

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