Documentation
¶
Overview ¶
Package letsdebug provides an library, web API and CLI to provide diagnostic information for why a particular (FQDN, ACME Validation Method) pair *may* fail when attempting to issue an SSL Certificate from Let's Encrypt (https://letsencrypt.org).
The usage cannot be generalized to other ACME providers, as the policies checked by this package are specific to Let's Encrypt, rather than being mandated by the ACME protocol.
This package relies on libunbound.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConfigureAcmeClient ¶
func ConfigureAcmeClient() acme.OptionFunc
Types ¶
type Options ¶
type Options struct {
// HTTPRequestPath alters the /.well-known/acme-challenge/letsdebug-test to
// /acme-challenge/acme-challenge/{{ HTTPRequestPath }}
HTTPRequestPath string
// HTTPExpectResponse causes the HTTP checker to require the remote server to
// respond with specific content. If the content does not match, then the test
// will fail with severity Error.
HTTPExpectResponse string
// SkipDomainValidation skips the validDomainChecker when the domain has already
// been validated by the caller (e.g., domain_assist package)
SkipDomainValidation bool
}
Options provide additional configuration to the various checkers
type Problem ¶
type Problem struct {
Name string `json:"name"`
Explanation string `json:"explanation"`
Detail string `json:"detail"`
Severity SeverityLevel `json:"severity"`
}
Problem represents an issue found by one of the checkers in this package. Explanation is a human-readable explanation of the issue. Detail is usually the underlying machine error.
func Check ¶
func Check(domain string, method ValidationMethod) (probs []Problem, retErr error)
Check calls CheckWithOptions with default options
func CheckWithOptions ¶
func CheckWithOptions(domain string, method ValidationMethod, opts Options) (probs []Problem, retErr error)
CheckWithOptions will run each checker against the domain and validation method provided. It is expected that this method may take a long time to execute, and may not be cancelled.
func (Problem) DetailLines ¶
type SeverityLevel ¶
type SeverityLevel string
SeverityLevel represents the priority of a reported problem
const ( SeverityFatal SeverityLevel = "Fatal" // Represents a fatal error which will stop any further checks SeverityError SeverityLevel = "Error" SeverityWarning SeverityLevel = "Warning" SeverityDebug SeverityLevel = "Debug" // Not to be shown by default )
type ValidationMethod ¶
type ValidationMethod string
ValidationMethod represents an ACME validation method
const ( HTTP01 ValidationMethod = "http-01" // HTTP01 represents the ACME http-01 validation method. DNS01 ValidationMethod = "dns-01" // DNS01 represents the ACME dns-01 validation method. TLSALPN01 ValidationMethod = "tls-alpn-01" // TLSALPN01 represents the ACME tls-alpn-01 validation method. )