971541dc0a
This will prevent indefinitely-hanging requests in case some service or middle box is malfunctioning. Fix vet errors and lint warnings Add vet to CI check Only get issuer certificate if it would be used No need to make a GET request if the OCSP server is not specified in leaf certificate Fix CI tests Make tests verbose
62 lines
1.8 KiB
Go
62 lines
1.8 KiB
Go
package main
|
|
|
|
import (
|
|
"net/url"
|
|
"os"
|
|
"path"
|
|
"strings"
|
|
|
|
"github.com/codegangsta/cli"
|
|
"github.com/xenolf/lego/acme"
|
|
)
|
|
|
|
// Configuration type from CLI and config files.
|
|
type Configuration struct {
|
|
context *cli.Context
|
|
}
|
|
|
|
// NewConfiguration creates a new configuration from CLI data.
|
|
func NewConfiguration(c *cli.Context) *Configuration {
|
|
return &Configuration{context: c}
|
|
}
|
|
|
|
// RsaBits returns the current set RSA bit length for private keys
|
|
func (c *Configuration) RsaBits() int {
|
|
return c.context.GlobalInt("rsa-key-size")
|
|
}
|
|
|
|
// ExcludedSolvers is a list of solvers that are to be excluded.
|
|
func (c *Configuration) ExcludedSolvers() (cc []acme.Challenge) {
|
|
for _, s := range c.context.GlobalStringSlice("exclude") {
|
|
cc = append(cc, acme.Challenge(s))
|
|
}
|
|
return
|
|
}
|
|
|
|
// ServerPath returns the OS dependent path to the data for a specific CA
|
|
func (c *Configuration) ServerPath() string {
|
|
srv, _ := url.Parse(c.context.GlobalString("server"))
|
|
srvStr := strings.Replace(srv.Host, ":", "_", -1)
|
|
return strings.Replace(srvStr, "/", string(os.PathSeparator), -1)
|
|
}
|
|
|
|
// CertPath gets the path for certificates.
|
|
func (c *Configuration) CertPath() string {
|
|
return path.Join(c.context.GlobalString("path"), "certificates")
|
|
}
|
|
|
|
// AccountsPath returns the OS dependent path to the
|
|
// local accounts for a specific CA
|
|
func (c *Configuration) AccountsPath() string {
|
|
return path.Join(c.context.GlobalString("path"), "accounts", c.ServerPath())
|
|
}
|
|
|
|
// AccountPath returns the OS dependent path to a particular account
|
|
func (c *Configuration) AccountPath(acc string) string {
|
|
return path.Join(c.AccountsPath(), acc)
|
|
}
|
|
|
|
// AccountKeysPath returns the OS dependent path to the keys of a particular account
|
|
func (c *Configuration) AccountKeysPath(acc string) string {
|
|
return path.Join(c.AccountPath(acc), "keys")
|
|
}
|