mirror of
https://github.com/go-acme/lego
synced 2026-03-14 14:35:48 +01:00
feat: add server shortcodes (#2837)
This commit is contained in:
parent
e2e4935b6d
commit
2f089d3603
176 changed files with 984 additions and 188 deletions
8
Makefile
8
Makefile
|
|
@ -39,16 +39,16 @@ checks:
|
|||
.PHONY: patch minor major detach
|
||||
|
||||
patch:
|
||||
go run ./internal/releaser/ release -m patch
|
||||
go run ./internal/generators/releaser/ release -m patch
|
||||
|
||||
minor:
|
||||
go run ./internal/releaser/ release -m minor
|
||||
go run ./internal/generators/releaser/ release -m minor
|
||||
|
||||
major:
|
||||
go run ./internal/releaser/ release -m major
|
||||
go run ./internal/generators/releaser/ release -m major
|
||||
|
||||
detach:
|
||||
go run ./internal/releaser/ detach
|
||||
go run ./internal/generators/releaser/ detach
|
||||
|
||||
# Docs
|
||||
.PHONY: docs-build docs-serve docs-themes
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import (
|
|||
"github.com/go-acme/lego/v5/lego"
|
||||
"github.com/go-acme/lego/v5/log"
|
||||
"github.com/go-acme/lego/v5/registration"
|
||||
"github.com/go-acme/lego/v5/registration/zerossl"
|
||||
"github.com/urfave/cli/v3"
|
||||
)
|
||||
|
||||
|
|
@ -94,6 +95,8 @@ func registerAccount(ctx context.Context, cmd *cli.Command, client *lego.Client)
|
|||
Kid: kid,
|
||||
HmacEncoded: hmacEncoded,
|
||||
})
|
||||
} else if zerossl.IsZeroSSL(cmd.String(flgServer)) {
|
||||
return registration.RegisterWithZeroSSL(ctx, client.Registration, cmd.String(flgEmail))
|
||||
}
|
||||
|
||||
return client.Registration.Register(ctx, registration.RegisterOptions{TermsOfServiceAgreed: true})
|
||||
|
|
|
|||
27
cmd/flags.go
27
cmd/flags.go
|
|
@ -1,15 +1,19 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/acme"
|
||||
"github.com/go-acme/lego/v5/certificate"
|
||||
"github.com/go-acme/lego/v5/cmd/internal/storage"
|
||||
"github.com/go-acme/lego/v5/lego"
|
||||
"github.com/go-acme/lego/v5/log"
|
||||
"github.com/urfave/cli/v3"
|
||||
"software.sslmate.com/src/go-pkcs12"
|
||||
)
|
||||
|
|
@ -160,12 +164,23 @@ const (
|
|||
func createACMEClientFlags() []cli.Flag {
|
||||
return []cli.Flag{
|
||||
&cli.StringFlag{
|
||||
Name: flgServer,
|
||||
Aliases: []string{"s"},
|
||||
Sources: cli.EnvVars(envServer),
|
||||
Usage: "CA hostname (and optionally :port). The server certificate must be trusted in order to avoid further modifications to the client.",
|
||||
Value: lego.LEDirectoryProduction,
|
||||
Required: true,
|
||||
// NOTE(ldez): if Required is true, then the default value is not display in the help.
|
||||
Name: flgServer,
|
||||
Aliases: []string{"s"},
|
||||
Sources: cli.EnvVars(envServer),
|
||||
Usage: fmt.Sprintf("CA (ACME server). It can be either a URL or a shortcode."+
|
||||
"\n\t(available shortcodes: %s)", strings.Join(lego.GetAllCodes(), ", ")),
|
||||
Value: lego.DirectoryURLLetsEncrypt,
|
||||
Action: func(ctx context.Context, cmd *cli.Command, s string) error {
|
||||
directoryURL, err := lego.GetDirectoryURL(s)
|
||||
if err != nil {
|
||||
log.Debug("Server shortcode not found. Use the value as URL.", slog.String("value", s), log.ErrorAttr(err))
|
||||
|
||||
directoryURL = s
|
||||
}
|
||||
|
||||
return cmd.Set(flgServer, directoryURL)
|
||||
},
|
||||
},
|
||||
&cli.BoolFlag{
|
||||
Category: categoryAdvanced,
|
||||
|
|
|
|||
9
docs/data/zz_cli_help.toml
generated
9
docs/data/zz_cli_help.toml
generated
|
|
@ -39,7 +39,8 @@ OPTIONS:
|
|||
--email string, -m string Email used for registration and recovery contact. [$LEGO_EMAIL]
|
||||
--help, -h show help
|
||||
--key-type string, -k string Key type to use for private keys. Supported: rsa2048, rsa3072, rsa4096, rsa8192, ec256, ec384. (default: "ec256")
|
||||
--server string, -s string CA hostname (and optionally :port). The server certificate must be trusted in order to avoid further modifications to the client. [$LEGO_SERVER]
|
||||
--server string, -s string CA (ACME server). It can be either a URL or a shortcode.
|
||||
(available shortcodes: actalis, digicert, freessl, globalsign, googletrust, googletrust-staging, letsencrypt, letsencrypt-staging, litessl, peeringhub, sslcomecc, sslcomrsa, sectigo, sectigoev, sectigoov, zerossl) (default: "https://acme-v02.api.letsencrypt.org/directory") [$LEGO_SERVER]
|
||||
|
||||
Flags related to External Account Binding:
|
||||
|
||||
|
|
@ -127,7 +128,8 @@ OPTIONS:
|
|||
--email string, -m string Email used for registration and recovery contact. [$LEGO_EMAIL]
|
||||
--help, -h show help
|
||||
--key-type string, -k string Key type to use for private keys. Supported: rsa2048, rsa3072, rsa4096, rsa8192, ec256, ec384. (default: "ec256")
|
||||
--server string, -s string CA hostname (and optionally :port). The server certificate must be trusted in order to avoid further modifications to the client. [$LEGO_SERVER]
|
||||
--server string, -s string CA (ACME server). It can be either a URL or a shortcode.
|
||||
(available shortcodes: actalis, digicert, freessl, globalsign, googletrust, googletrust-staging, letsencrypt, letsencrypt-staging, litessl, peeringhub, sslcomecc, sslcomrsa, sectigo, sectigoev, sectigoov, zerossl) (default: "https://acme-v02.api.letsencrypt.org/directory") [$LEGO_SERVER]
|
||||
|
||||
Flags related to ACME Renewal Information (ARI) Extension:
|
||||
|
||||
|
|
@ -222,7 +224,8 @@ OPTIONS:
|
|||
--keep, -k Keep the certificates after the revocation instead of archiving them.
|
||||
--key-type string, -k string Key type to use for private keys. Supported: rsa2048, rsa3072, rsa4096, rsa8192, ec256, ec384. (default: "ec256")
|
||||
--reason uint Identifies the reason for the certificate revocation. See https://www.rfc-editor.org/rfc/rfc5280.html#section-5.3.1. Valid values are: 0 (unspecified), 1 (keyCompromise), 2 (cACompromise), 3 (affiliationChanged), 4 (superseded), 5 (cessationOfOperation), 6 (certificateHold), 8 (removeFromCRL), 9 (privilegeWithdrawn), or 10 (aACompromise). (default: 0)
|
||||
--server string, -s string CA hostname (and optionally :port). The server certificate must be trusted in order to avoid further modifications to the client. [$LEGO_SERVER]
|
||||
--server string, -s string CA (ACME server). It can be either a URL or a shortcode.
|
||||
(available shortcodes: actalis, digicert, freessl, globalsign, googletrust, googletrust-staging, letsencrypt, letsencrypt-staging, litessl, peeringhub, sslcomecc, sslcomrsa, sectigo, sectigoev, sectigoov, zerossl) (default: "https://acme-v02.api.letsencrypt.org/directory") [$LEGO_SERVER]
|
||||
|
||||
Flags related to External Account Binding:
|
||||
|
||||
|
|
|
|||
42
internal/generators/ca/ca.go.tmpl
Normal file
42
internal/generators/ca/ca.go.tmpl
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
// Code generated by 'make generate-dns'; DO NOT EDIT.
|
||||
|
||||
package lego
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
{{- range . }}
|
||||
// Code{{ ToVarName .Code }} is the CA code for {{ .Name }}.
|
||||
// {{ .DocumentationURL }}
|
||||
Code{{ ToVarName .Code }} = "{{ ToLower .Code }}"
|
||||
{{ end }})
|
||||
|
||||
const (
|
||||
{{- range . }}
|
||||
// DirectoryURL{{ ToVarName .Code }} is the directory URL for {{ .Name }}.
|
||||
// {{ .DocumentationURL }}
|
||||
DirectoryURL{{ ToVarName .Code }} = "{{ .DirectoryURL }}"
|
||||
{{ end }})
|
||||
|
||||
// GetDirectoryURL returns the directory URL for the given CA code.
|
||||
func GetDirectoryURL(code string) (string, error) {
|
||||
switch strings.ToLower(code) {
|
||||
{{- range . }}
|
||||
case Code{{ ToVarName .Code }}:
|
||||
return DirectoryURL{{ ToVarName .Code }}, nil
|
||||
{{ end }}
|
||||
default:
|
||||
return "", fmt.Errorf("unknown ACME server code: %q", code)
|
||||
}
|
||||
}
|
||||
|
||||
func GetAllCodes() []string {
|
||||
return []string{
|
||||
{{- range . }}
|
||||
Code{{ ToVarName .Code }},
|
||||
{{- end }}
|
||||
}
|
||||
}
|
||||
114
internal/generators/ca/cas.json
Normal file
114
internal/generators/ca/cas.json
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
[
|
||||
{
|
||||
"name": "Actalis",
|
||||
"type": "production",
|
||||
"code": "Actalis",
|
||||
"directoryURL": "https://acme-api.actalis.com/acme/directory",
|
||||
"documentationURL": "https://guide.actalis.com/ssl/activation/acme"
|
||||
},
|
||||
{
|
||||
"name": "Digicert",
|
||||
"type": "production",
|
||||
"code": "Digicert",
|
||||
"directoryURL": "https://one.digicert.com/mpki/api/v1/acme/v2/directory",
|
||||
"documentationURL": "https://docs.digicert.com/en/trust-lifecycle-manager/automate-management-of-certificates/acme-automation-service/third-party-acme-integration/install-and-configure-third-party-acme-clients.html"
|
||||
},
|
||||
{
|
||||
"name": "FreeSSL",
|
||||
"type": "production",
|
||||
"code": "FreeSSL",
|
||||
"directoryURL": "https://acmepro.freessl.cn/v2/DV",
|
||||
"documentationURL": "https://freessl.cn/"
|
||||
},
|
||||
{
|
||||
"name": "GlobalSign",
|
||||
"type": "production",
|
||||
"code": "GlobalSign",
|
||||
"directoryURL": "https://emea.acme.atlas.globalsign.com/directory",
|
||||
"documentationURL": "https://docs.globalsign.com/solutions/services/acme/issuing-certificates-http-validation"
|
||||
},
|
||||
{
|
||||
"name": "Google Trust",
|
||||
"type": "production",
|
||||
"code": "GoogleTrust",
|
||||
"directoryURL": "https://dv.acme-v02.api.pki.goog/directory",
|
||||
"documentationURL": "https://docs.cloud.google.com/certificate-manager/docs/public-ca-tutorial#register-acme"
|
||||
},
|
||||
{
|
||||
"name": "Google Trust staging",
|
||||
"type": "staging",
|
||||
"code": "GoogleTrust-Staging",
|
||||
"directoryURL": " https://dv.acme-v02.test-api.pki.goog/directory",
|
||||
"documentationURL": "https://docs.cloud.google.com/certificate-manager/docs/public-ca-tutorial#register-acme"
|
||||
},
|
||||
{
|
||||
"name": "Let's Encrypt",
|
||||
"type": "production",
|
||||
"code": "LetsEncrypt",
|
||||
"directoryURL": "https://acme-v02.api.letsencrypt.org/directory",
|
||||
"documentationURL": "https://letsencrypt.org/docs/"
|
||||
},
|
||||
{
|
||||
"name": "Let's Encrypt staging",
|
||||
"type": "staging",
|
||||
"code": "LetsEncrypt-Staging",
|
||||
"directoryURL": "https://acme-staging-v02.api.letsencrypt.org/directory",
|
||||
"documentationURL": "https://letsencrypt.org/docs/staging-environment/"
|
||||
},
|
||||
{
|
||||
"name": "LiteSSL",
|
||||
"type": "production",
|
||||
"code": "LiteSSL",
|
||||
"directoryURL": "https://acme.litessl.com/acme/v2/directory",
|
||||
"documentationURL": "https://litessl.cn/"
|
||||
},
|
||||
{
|
||||
"name": "PeeringHub",
|
||||
"type": "production",
|
||||
"code": "PeeringHub",
|
||||
"directoryURL": "https://stica.peeringhub.io/acme",
|
||||
"documentationURL": "https://doc.peeringhub.io/guides/generating-certificate/acme-protocol-reference/list-server-directory"
|
||||
},
|
||||
{
|
||||
"name": "SSL.com ECDSA",
|
||||
"type": "production",
|
||||
"code": "SSLComECC",
|
||||
"directoryURL": "https://acme.ssl.com/sslcom-dv-ecc",
|
||||
"documentationURL": "https://www.ssl.com/guide/ssl-tls-certificate-issuance-and-revocation-with-acme/"
|
||||
},
|
||||
{
|
||||
"name": "SSL.com RSA",
|
||||
"type": "production",
|
||||
"code": "SSLComRSA",
|
||||
"directoryURL": "https://acme.ssl.com/sslcom-dv-rsa",
|
||||
"documentationURL": "https://www.ssl.com/guide/ssl-tls-certificate-issuance-and-revocation-with-acme/"
|
||||
},
|
||||
{
|
||||
"name": "Sectigo DV (Domain Validation)",
|
||||
"type": "production",
|
||||
"code": "Sectigo",
|
||||
"directoryURL": "https://acme.sectigo.com/v2/DV",
|
||||
"documentationURL": "https://docs.sectigo.com/caas/caas-api-guide/create-acme-accounts"
|
||||
},
|
||||
{
|
||||
"name": "Sectigo EV (Extended Validation)",
|
||||
"type": "production",
|
||||
"code": "SectigoEV",
|
||||
"directoryURL": "https://acme.sectigo.com/v2/EV",
|
||||
"documentationURL": "https://docs.sectigo.com/"
|
||||
},
|
||||
{
|
||||
"name": "Sectigo OV (Organization Validation) ",
|
||||
"type": "production",
|
||||
"code": "SectigoOV",
|
||||
"directoryURL": "https://acme.sectigo.com/v2/OV",
|
||||
"documentationURL": "https://docs.sectigo.com/caas/caas-api-guide/getting-started-ov"
|
||||
},
|
||||
{
|
||||
"name": "ZeroSSL",
|
||||
"type": "production",
|
||||
"code": "ZeroSSL",
|
||||
"directoryURL": "https://acme.zerossl.com/v2/DV90",
|
||||
"documentationURL": "https://zerossl.com/documentation/acme/"
|
||||
}
|
||||
]
|
||||
100
internal/generators/ca/generator.go
Normal file
100
internal/generators/ca/generator.go
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
package main
|
||||
|
||||
//go:generate go run .
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
_ "embed"
|
||||
"encoding/json"
|
||||
"go/format"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"slices"
|
||||
"strings"
|
||||
"text/template"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
const (
|
||||
root = "../../../"
|
||||
|
||||
inputPath = "cas.json"
|
||||
outputPath = "lego/zz_gen_ca.go"
|
||||
)
|
||||
|
||||
//go:embed ca.go.tmpl
|
||||
var srcTemplate string
|
||||
|
||||
type Entry struct {
|
||||
Name string `json:"name"`
|
||||
Type string `json:"type"`
|
||||
Code string `json:"code"`
|
||||
DirectoryURL string `json:"directoryURL"`
|
||||
DocumentationURL string `json:"documentationURL"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
err := generate()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func generate() error {
|
||||
output, err := os.Create(filepath.Join(root, outputPath))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
defer func() { _ = output.Close() }()
|
||||
|
||||
input, err := os.Open(inputPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
defer func() { _ = input.Close() }()
|
||||
|
||||
var entries []Entry
|
||||
|
||||
slices.SortFunc(entries, func(a, b Entry) int {
|
||||
return strings.Compare(a.Code, b.Code)
|
||||
})
|
||||
|
||||
err = json.NewDecoder(input).Decode(&entries)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
b := &bytes.Buffer{}
|
||||
|
||||
err = template.Must(
|
||||
template.New("ca").Funcs(map[string]any{
|
||||
"ToLower": strings.ToLower,
|
||||
"ToVarName": toVarName,
|
||||
}).Parse(srcTemplate),
|
||||
).Execute(b, entries)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// gofmt
|
||||
source, err := format.Source(b.Bytes())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = output.Write(source)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func toVarName(s string) string {
|
||||
return strings.Join(strings.FieldsFunc(s, func(r rune) bool {
|
||||
return !unicode.IsLetter(r) && !unicode.IsDigit(r)
|
||||
}), "")
|
||||
}
|
||||
|
|
@ -15,7 +15,7 @@ import (
|
|||
"github.com/urfave/cli/v3"
|
||||
)
|
||||
|
||||
const outputFile = "../../docs/data/zz_cli_help.toml"
|
||||
const outputFile = "../../../docs/data/zz_cli_help.toml"
|
||||
|
||||
const baseTemplate = `# THIS FILE IS AUTO-GENERATED. PLEASE DO NOT EDIT.
|
||||
|
||||
|
|
@ -17,14 +17,14 @@ import (
|
|||
"strings"
|
||||
"text/template"
|
||||
|
||||
"github.com/go-acme/lego/v5/internal/dns/descriptors"
|
||||
"github.com/go-acme/lego/v5/internal/generators/dns/descriptors"
|
||||
)
|
||||
|
||||
//go:embed templates
|
||||
var templateFS embed.FS
|
||||
|
||||
const (
|
||||
root = "../../../"
|
||||
root = "../../../../"
|
||||
|
||||
cliOutput = root + "cmd/zz_gen_cmd_dnshelp.go"
|
||||
docOutput = root + "docs/content/dns"
|
||||
|
|
@ -13,11 +13,11 @@ import (
|
|||
"strings"
|
||||
"text/template"
|
||||
|
||||
"github.com/go-acme/lego/v5/internal/dns/descriptors"
|
||||
"github.com/go-acme/lego/v5/internal/generators/dns/descriptors"
|
||||
)
|
||||
|
||||
const (
|
||||
root = "../../../"
|
||||
root = "../../../../"
|
||||
|
||||
outputPath = "providers/dns/zz_gen_dns_providers.go"
|
||||
)
|
||||
|
|
@ -12,7 +12,7 @@ import (
|
|||
|
||||
const (
|
||||
dnsTemplate = "templates/dns.go.tmpl"
|
||||
dnsTargetFile = "./providers/dns/internal/useragent/useragent.go"
|
||||
dnsTargetFile = "./internal/useragent/useragent.go"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
@ -32,12 +32,6 @@ const (
|
|||
// authenticate an ACME server with an HTTPS certificate not issued by a CA in
|
||||
// the system-wide trusted root list.
|
||||
caServerNameEnvVar = "LEGO_CA_SERVER_NAME"
|
||||
|
||||
// LEDirectoryProduction URL to the Let's Encrypt production.
|
||||
LEDirectoryProduction = "https://acme-v02.api.letsencrypt.org/directory"
|
||||
|
||||
// LEDirectoryStaging URL to the Let's Encrypt staging.
|
||||
LEDirectoryStaging = "https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
|
|
@ -50,7 +44,7 @@ type Config struct {
|
|||
|
||||
func NewConfig(user registration.User) *Config {
|
||||
return &Config{
|
||||
CADirURL: LEDirectoryProduction,
|
||||
CADirURL: DirectoryURLLetsEncrypt,
|
||||
User: user,
|
||||
HTTPClient: createDefaultHTTPClient(),
|
||||
Certificate: CertificateConfig{
|
||||
|
|
|
|||
217
lego/zz_gen_ca.go
generated
Normal file
217
lego/zz_gen_ca.go
generated
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
// Code generated by 'make generate-dns'; DO NOT EDIT.
|
||||
|
||||
package lego
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
// CodeActalis is the CA code for Actalis.
|
||||
// https://guide.actalis.com/ssl/activation/acme
|
||||
CodeActalis = "actalis"
|
||||
|
||||
// CodeDigicert is the CA code for Digicert.
|
||||
// https://docs.digicert.com/en/trust-lifecycle-manager/automate-management-of-certificates/acme-automation-service/third-party-acme-integration/install-and-configure-third-party-acme-clients.html
|
||||
CodeDigicert = "digicert"
|
||||
|
||||
// CodeFreeSSL is the CA code for FreeSSL.
|
||||
// https://freessl.cn/
|
||||
CodeFreeSSL = "freessl"
|
||||
|
||||
// CodeGlobalSign is the CA code for GlobalSign.
|
||||
// https://docs.globalsign.com/solutions/services/acme/issuing-certificates-http-validation
|
||||
CodeGlobalSign = "globalsign"
|
||||
|
||||
// CodeGoogleTrust is the CA code for Google Trust.
|
||||
// https://docs.cloud.google.com/certificate-manager/docs/public-ca-tutorial#register-acme
|
||||
CodeGoogleTrust = "googletrust"
|
||||
|
||||
// CodeGoogleTrustStaging is the CA code for Google Trust staging.
|
||||
// https://docs.cloud.google.com/certificate-manager/docs/public-ca-tutorial#register-acme
|
||||
CodeGoogleTrustStaging = "googletrust-staging"
|
||||
|
||||
// CodeLetsEncrypt is the CA code for Let's Encrypt.
|
||||
// https://letsencrypt.org/docs/
|
||||
CodeLetsEncrypt = "letsencrypt"
|
||||
|
||||
// CodeLetsEncryptStaging is the CA code for Let's Encrypt staging.
|
||||
// https://letsencrypt.org/docs/staging-environment/
|
||||
CodeLetsEncryptStaging = "letsencrypt-staging"
|
||||
|
||||
// CodeLiteSSL is the CA code for LiteSSL.
|
||||
// https://litessl.cn/
|
||||
CodeLiteSSL = "litessl"
|
||||
|
||||
// CodePeeringHub is the CA code for PeeringHub.
|
||||
// https://doc.peeringhub.io/guides/generating-certificate/acme-protocol-reference/list-server-directory
|
||||
CodePeeringHub = "peeringhub"
|
||||
|
||||
// CodeSSLComECC is the CA code for SSL.com ECDSA.
|
||||
// https://www.ssl.com/guide/ssl-tls-certificate-issuance-and-revocation-with-acme/
|
||||
CodeSSLComECC = "sslcomecc"
|
||||
|
||||
// CodeSSLComRSA is the CA code for SSL.com RSA.
|
||||
// https://www.ssl.com/guide/ssl-tls-certificate-issuance-and-revocation-with-acme/
|
||||
CodeSSLComRSA = "sslcomrsa"
|
||||
|
||||
// CodeSectigo is the CA code for Sectigo DV (Domain Validation).
|
||||
// https://docs.sectigo.com/caas/caas-api-guide/create-acme-accounts
|
||||
CodeSectigo = "sectigo"
|
||||
|
||||
// CodeSectigoEV is the CA code for Sectigo EV (Extended Validation).
|
||||
// https://docs.sectigo.com/
|
||||
CodeSectigoEV = "sectigoev"
|
||||
|
||||
// CodeSectigoOV is the CA code for Sectigo OV (Organization Validation) .
|
||||
// https://docs.sectigo.com/caas/caas-api-guide/getting-started-ov
|
||||
CodeSectigoOV = "sectigoov"
|
||||
|
||||
// CodeZeroSSL is the CA code for ZeroSSL.
|
||||
// https://zerossl.com/documentation/acme/
|
||||
CodeZeroSSL = "zerossl"
|
||||
)
|
||||
|
||||
const (
|
||||
// DirectoryURLActalis is the directory URL for Actalis.
|
||||
// https://guide.actalis.com/ssl/activation/acme
|
||||
DirectoryURLActalis = "https://acme-api.actalis.com/acme/directory"
|
||||
|
||||
// DirectoryURLDigicert is the directory URL for Digicert.
|
||||
// https://docs.digicert.com/en/trust-lifecycle-manager/automate-management-of-certificates/acme-automation-service/third-party-acme-integration/install-and-configure-third-party-acme-clients.html
|
||||
DirectoryURLDigicert = "https://one.digicert.com/mpki/api/v1/acme/v2/directory"
|
||||
|
||||
// DirectoryURLFreeSSL is the directory URL for FreeSSL.
|
||||
// https://freessl.cn/
|
||||
DirectoryURLFreeSSL = "https://acmepro.freessl.cn/v2/DV"
|
||||
|
||||
// DirectoryURLGlobalSign is the directory URL for GlobalSign.
|
||||
// https://docs.globalsign.com/solutions/services/acme/issuing-certificates-http-validation
|
||||
DirectoryURLGlobalSign = "https://emea.acme.atlas.globalsign.com/directory"
|
||||
|
||||
// DirectoryURLGoogleTrust is the directory URL for Google Trust.
|
||||
// https://docs.cloud.google.com/certificate-manager/docs/public-ca-tutorial#register-acme
|
||||
DirectoryURLGoogleTrust = "https://dv.acme-v02.api.pki.goog/directory"
|
||||
|
||||
// DirectoryURLGoogleTrustStaging is the directory URL for Google Trust staging.
|
||||
// https://docs.cloud.google.com/certificate-manager/docs/public-ca-tutorial#register-acme
|
||||
DirectoryURLGoogleTrustStaging = " https://dv.acme-v02.test-api.pki.goog/directory"
|
||||
|
||||
// DirectoryURLLetsEncrypt is the directory URL for Let's Encrypt.
|
||||
// https://letsencrypt.org/docs/
|
||||
DirectoryURLLetsEncrypt = "https://acme-v02.api.letsencrypt.org/directory"
|
||||
|
||||
// DirectoryURLLetsEncryptStaging is the directory URL for Let's Encrypt staging.
|
||||
// https://letsencrypt.org/docs/staging-environment/
|
||||
DirectoryURLLetsEncryptStaging = "https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
|
||||
// DirectoryURLLiteSSL is the directory URL for LiteSSL.
|
||||
// https://litessl.cn/
|
||||
DirectoryURLLiteSSL = "https://acme.litessl.com/acme/v2/directory"
|
||||
|
||||
// DirectoryURLPeeringHub is the directory URL for PeeringHub.
|
||||
// https://doc.peeringhub.io/guides/generating-certificate/acme-protocol-reference/list-server-directory
|
||||
DirectoryURLPeeringHub = "https://stica.peeringhub.io/acme"
|
||||
|
||||
// DirectoryURLSSLComECC is the directory URL for SSL.com ECDSA.
|
||||
// https://www.ssl.com/guide/ssl-tls-certificate-issuance-and-revocation-with-acme/
|
||||
DirectoryURLSSLComECC = "https://acme.ssl.com/sslcom-dv-ecc"
|
||||
|
||||
// DirectoryURLSSLComRSA is the directory URL for SSL.com RSA.
|
||||
// https://www.ssl.com/guide/ssl-tls-certificate-issuance-and-revocation-with-acme/
|
||||
DirectoryURLSSLComRSA = "https://acme.ssl.com/sslcom-dv-rsa"
|
||||
|
||||
// DirectoryURLSectigo is the directory URL for Sectigo DV (Domain Validation).
|
||||
// https://docs.sectigo.com/caas/caas-api-guide/create-acme-accounts
|
||||
DirectoryURLSectigo = "https://acme.sectigo.com/v2/DV"
|
||||
|
||||
// DirectoryURLSectigoEV is the directory URL for Sectigo EV (Extended Validation).
|
||||
// https://docs.sectigo.com/
|
||||
DirectoryURLSectigoEV = "https://acme.sectigo.com/v2/EV"
|
||||
|
||||
// DirectoryURLSectigoOV is the directory URL for Sectigo OV (Organization Validation) .
|
||||
// https://docs.sectigo.com/caas/caas-api-guide/getting-started-ov
|
||||
DirectoryURLSectigoOV = "https://acme.sectigo.com/v2/OV"
|
||||
|
||||
// DirectoryURLZeroSSL is the directory URL for ZeroSSL.
|
||||
// https://zerossl.com/documentation/acme/
|
||||
DirectoryURLZeroSSL = "https://acme.zerossl.com/v2/DV90"
|
||||
)
|
||||
|
||||
// GetDirectoryURL returns the directory URL for the given CA code.
|
||||
func GetDirectoryURL(code string) (string, error) {
|
||||
switch strings.ToLower(code) {
|
||||
case CodeActalis:
|
||||
return DirectoryURLActalis, nil
|
||||
|
||||
case CodeDigicert:
|
||||
return DirectoryURLDigicert, nil
|
||||
|
||||
case CodeFreeSSL:
|
||||
return DirectoryURLFreeSSL, nil
|
||||
|
||||
case CodeGlobalSign:
|
||||
return DirectoryURLGlobalSign, nil
|
||||
|
||||
case CodeGoogleTrust:
|
||||
return DirectoryURLGoogleTrust, nil
|
||||
|
||||
case CodeGoogleTrustStaging:
|
||||
return DirectoryURLGoogleTrustStaging, nil
|
||||
|
||||
case CodeLetsEncrypt:
|
||||
return DirectoryURLLetsEncrypt, nil
|
||||
|
||||
case CodeLetsEncryptStaging:
|
||||
return DirectoryURLLetsEncryptStaging, nil
|
||||
|
||||
case CodeLiteSSL:
|
||||
return DirectoryURLLiteSSL, nil
|
||||
|
||||
case CodePeeringHub:
|
||||
return DirectoryURLPeeringHub, nil
|
||||
|
||||
case CodeSSLComECC:
|
||||
return DirectoryURLSSLComECC, nil
|
||||
|
||||
case CodeSSLComRSA:
|
||||
return DirectoryURLSSLComRSA, nil
|
||||
|
||||
case CodeSectigo:
|
||||
return DirectoryURLSectigo, nil
|
||||
|
||||
case CodeSectigoEV:
|
||||
return DirectoryURLSectigoEV, nil
|
||||
|
||||
case CodeSectigoOV:
|
||||
return DirectoryURLSectigoOV, nil
|
||||
|
||||
case CodeZeroSSL:
|
||||
return DirectoryURLZeroSSL, nil
|
||||
|
||||
default:
|
||||
return "", fmt.Errorf("unknown ACME server code: %q", code)
|
||||
}
|
||||
}
|
||||
|
||||
func GetAllCodes() []string {
|
||||
return []string{
|
||||
CodeActalis,
|
||||
CodeDigicert,
|
||||
CodeFreeSSL,
|
||||
CodeGlobalSign,
|
||||
CodeGoogleTrust,
|
||||
CodeGoogleTrustStaging,
|
||||
CodeLetsEncrypt,
|
||||
CodeLetsEncryptStaging,
|
||||
CodeLiteSSL,
|
||||
CodePeeringHub,
|
||||
CodeSSLComECC,
|
||||
CodeSSLComRSA,
|
||||
CodeSectigo,
|
||||
CodeSectigoEV,
|
||||
CodeSectigoOV,
|
||||
CodeZeroSSL,
|
||||
}
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/nrdcg/goacmedns"
|
||||
"github.com/nrdcg/goacmedns/storage"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-viper/mapstructure/v2"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// authEndpoint represents the Identity API endpoint to call.
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.alwaysdata.com/v1"
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://engine.anexia-it.com"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// defaultBaseURL represents the API endpoint to call.
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// DefaultEndpoint default API endpoint.
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
querystring "github.com/google/go-querystring/query"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ import (
|
|||
aazure "github.com/Azure/go-autorest/autorest/azure"
|
||||
"github.com/Azure/go-autorest/autorest/azure/auth"
|
||||
"github.com/go-acme/lego/v5/challenge"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/platform/config/env"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
)
|
||||
|
||||
// Environment variables names.
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.beget.com/api/"
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.binarylane.com.au/v2/"
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// Object types.
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import (
|
|||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
type token string
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
querystring "github.com/google/go-querystring/query"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://portal.brandit.com/api/v3/"
|
||||
|
|
|
|||
|
|
@ -11,10 +11,10 @@ import (
|
|||
|
||||
"github.com/go-acme/lego/v5/challenge"
|
||||
"github.com/go-acme/lego/v5/challenge/dns01"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/platform/config/env"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/clientdebug"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/ptr"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"github.com/nrdcg/bunny-go"
|
||||
"golang.org/x/net/publicsuffix"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"golang.org/x/oauth2"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
"golang.org/x/oauth2"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const apiBaseURL = "https://admin.vshosting.cloud/clouddns"
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/clientdebug"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.cloudflare.com/client/v4"
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/challenge/dns01"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.cloudns.net/dns/"
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// Default API endpoints.
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
type token string
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const dnsServiceBaseURL = "https://dns-service.%s.conoha.io"
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const identityBaseURL = "https://identity.%s.conoha.io"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const dnsServiceBaseURL = "https://dns-service.%s.conoha.io"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const identityBaseURL = "https://identity.%s.conoha.io"
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://beta.api.core-networks.de"
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/cpanel/internal/shared"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
)
|
||||
|
||||
const statusFailed = 0
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/cpanel/internal/shared"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
)
|
||||
|
||||
const statusFailed = 0
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
"golang.org/x/net/html"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
querystring "github.com/google/go-querystring/query"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/challenge/dns01"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"golang.org/x/oauth2"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
querystring "github.com/google/go-querystring/query"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.dnsexit.com/dns/"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@ import (
|
|||
"github.com/dnsimple/dnsimple-go/v4/dnsimple"
|
||||
"github.com/go-acme/lego/v5/challenge"
|
||||
"github.com/go-acme/lego/v5/challenge/dns01"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/platform/config/env"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/clientdebug"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"golang.org/x/oauth2"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/challenge/dns01"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// Default API endpoints.
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/challenge/dns01"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://my.do.de/api"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL string = "https://api.domeneshop.no/v0"
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// DefaultBaseURL the default API endpoint.
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/challenge/dns01"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/miekg/dns"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.dynect.net/REST"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import (
|
|||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
type token string
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://dynup.de/acme.php"
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/cenkalti/backoff/v5"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/log"
|
||||
"github.com/go-acme/lego/v5/platform/wait"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.dynu.com/v2"
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// DefaultBaseURL the default API endpoint.
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
querystring "github.com/google/go-querystring/query"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://usersapiv2.epik.com/v2"
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ import (
|
|||
"github.com/exoscale/egoscale/v3/credentials"
|
||||
"github.com/go-acme/lego/v5/challenge"
|
||||
"github.com/go-acme/lego/v5/challenge/dns01"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/platform/config/env"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/clientdebug"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
)
|
||||
|
||||
// Environment variables names.
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultServer = "console.ves.volterra.io"
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// defaultBaseURL Gandi XML-RPC endpoint used by Present and CleanUp.
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// defaultBaseURL endpoint is the Gandi API endpoint used by Present and CleanUp.
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.gigahost.no/api/v0"
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
"github.com/pquerna/otp/totp"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// defaultBaseURL is the GleSYS API endpoint used by Present and CleanUp.
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// DefaultBaseURL represents the API endpoint to call.
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
"golang.org/x/net/publicsuffix"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"golang.org/x/oauth2"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
// defaultBaseURL represents the API endpoint to call.
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://developers.hostinger.com"
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.hosting.nl"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"golang.org/x/oauth2"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ import (
|
|||
|
||||
"github.com/go-acme/lego/v5/challenge"
|
||||
"github.com/go-acme/lego/v5/challenge/dns01"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/platform/config/env"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/clientdebug"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
)
|
||||
|
||||
// Environment variables names.
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/log"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"golang.org/x/time/rate"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.hyperone.com/v2"
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ import (
|
|||
|
||||
"github.com/go-acme/lego/v5/challenge"
|
||||
"github.com/go-acme/lego/v5/challenge/dns01"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/platform/config/env"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
infoblox "github.com/infobloxopen/infoblox-go-client/v2"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/challenge/dns01"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"golang.org/x/oauth2"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://rest.%s"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.gcore.com/dns"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/cenkalti/backoff/v5"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://secure.hosting.de/api/dns/v1/json"
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
querystring "github.com/google/go-querystring/query"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import (
|
|||
"regexp"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
querystring "github.com/google/go-querystring/query"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
)
|
||||
|
||||
const defaultBaseURL = "https://api.selectel.ru/domains/v1"
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/providers/dns/internal/useragent"
|
||||
"github.com/go-acme/lego/v5/internal/errutils"
|
||||
"github.com/go-acme/lego/v5/internal/useragent"
|
||||
)
|
||||
|
||||
// defaultBaseURL is the default API endpoint.
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue