Skip to content

Commit 1a28153

Browse files
authored
Merge pull request #1668 from accuser/add-provider-for-dns-01-challenge
Add provider for DNS-01 ACME challenge
2 parents 383b6d9 + 2db43a8 commit 1a28153

File tree

13 files changed

+2241
-50
lines changed

13 files changed

+2241
-50
lines changed

cmd/incusd/acme.go

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ func acmeProvideChallenge(d *Daemon, r *http.Request) response.Response {
7676
func autoRenewCertificate(ctx context.Context, d *Daemon, force bool) error {
7777
s := d.State()
7878

79-
domain, email, caURL, agreeToS := s.GlobalConfig.ACME()
79+
domain, email, caURL, agreeToS, challengeType := s.GlobalConfig.ACME()
8080

81-
if domain == "" || email == "" || !agreeToS {
81+
if domain == "" || email == "" || !agreeToS || challengeType == "" {
8282
return nil
8383
}
8484

@@ -97,8 +97,26 @@ func autoRenewCertificate(ctx context.Context, d *Daemon, force bool) error {
9797
}
9898
}
9999

100+
var challengeProvider acme.ChallengeProvider
101+
102+
if challengeType == "DNS-01" {
103+
provider, env, resolvers := s.GlobalConfig.ACMEDNS()
104+
105+
if provider == "" {
106+
logger.Error("DNS-01 challenge type requires acme.dns.provider configuration key to be set", nil)
107+
return nil
108+
}
109+
110+
challengeProvider = acme.NewDNS01Provider(provider, env, resolvers)
111+
if challengeProvider == nil {
112+
return nil
113+
}
114+
} else {
115+
challengeProvider = d.http01Provider
116+
}
117+
100118
opRun := func(op *operations.Operation) error {
101-
newCert, err := acme.UpdateCertificate(s, d.http01Provider, s.ServerClustered, domain, email, caURL, force)
119+
newCert, err := acme.UpdateCertificate(s, challengeProvider, s.ServerClustered, domain, email, caURL, force)
102120
if err != nil {
103121
return err
104122
}

doc/.wordlist.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ RBD
226226
README
227227
reconfiguring
228228
requestor
229+
resolvers
229230
RESTful
230231
RHEL
231232
rootfs

doc/api-extensions.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2710,3 +2710,6 @@ support it.
27102710

27112711
## `api_filtering_extended`
27122712
This extends the API filtering mechanism to all API collections.
2713+
2714+
## `acme_dns01`
2715+
Adds support for `DNS-01` challenge to the Incus ACME support for certificate generation.

doc/config_options.txt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2066,6 +2066,14 @@ Specify the number of days after which the unused cached image expires.
20662066

20672067
```
20682068

2069+
```{config:option} acme.challenge server-acme
2070+
:defaultdesc: "`HTTP-01`"
2071+
:scope: "global"
2072+
:shortdesc: "ACME challenge type to use"
2073+
:type: "string"
2074+
Possible values are `DNS-01` and `HTTP-01`.
2075+
```
2076+
20692077
```{config:option} acme.domain server-acme
20702078
:scope: "global"
20712079
:shortdesc: "Domain for which the certificate is issued"
@@ -2080,6 +2088,30 @@ Specify the number of days after which the unused cached image expires.
20802088

20812089
```
20822090

2091+
```{config:option} acme.provider server-acme
2092+
:defaultdesc: "``"
2093+
:scope: "global"
2094+
:shortdesc: "Backend provider for the challenge (used by DNS-01)"
2095+
:type: "string"
2096+
2097+
```
2098+
2099+
```{config:option} acme.provider.environment server-acme
2100+
:defaultdesc: "``"
2101+
:scope: "global"
2102+
:shortdesc: "Environment variables to set during the challenge (used by DNS-01)"
2103+
:type: "string"
2104+
2105+
```
2106+
2107+
```{config:option} acme.provider.resolvers server-acme
2108+
:defaultdesc: "``"
2109+
:scope: "global"
2110+
:shortdesc: "Comma-separated list of DNS resolvers (used by DNS-01)"
2111+
:type: "string"
2112+
DNS resolvers to use for performing (recursive) `CNAME` resolving and apex domain determination during DNS-01 challenge.
2113+
```
2114+
20832115
<!-- config group server-acme end -->
20842116
<!-- config group server-cluster start -->
20852117
```{config:option} cluster.healing_threshold server-cluster

go.mod

Lines changed: 156 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ require (
1515
github.com/fvbommel/sortorder v1.1.0
1616
github.com/go-acme/lego/v4 v4.22.2
1717
github.com/go-chi/chi/v5 v5.2.1
18-
github.com/go-jose/go-jose/v4 v4.0.4
18+
github.com/go-jose/go-jose/v4 v4.0.5
1919
github.com/go-logr/logr v1.4.2
2020
github.com/golang-jwt/jwt/v5 v5.2.1
2121
github.com/google/gopacket v1.1.19
@@ -52,11 +52,11 @@ require (
5252
github.com/stretchr/testify v1.10.0
5353
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635
5454
github.com/vishvananda/netlink v1.3.0
55-
github.com/zitadel/oidc/v3 v3.34.2
56-
go.starlark.net v0.0.0-20250205221240-492d3672b3f4
57-
golang.org/x/crypto v0.33.0
55+
github.com/zitadel/oidc/v3 v3.35.0
56+
go.starlark.net v0.0.0-20250225190231-0d3f41d403af
57+
golang.org/x/crypto v0.35.0
5858
golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa
59-
golang.org/x/oauth2 v0.26.0
59+
golang.org/x/oauth2 v0.27.0
6060
golang.org/x/sync v0.11.0
6161
golang.org/x/sys v0.30.0
6262
golang.org/x/term v0.29.0
@@ -69,74 +69,222 @@ require (
6969
)
7070

7171
require (
72+
cloud.google.com/go/auth v0.15.0 // indirect
73+
cloud.google.com/go/auth/oauth2adapt v0.2.7 // indirect
74+
cloud.google.com/go/compute/metadata v0.6.0 // indirect
75+
github.com/AdamSLevy/jsonrpc2/v14 v14.1.0 // indirect
76+
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible // indirect
77+
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 // indirect
78+
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 // indirect
79+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
80+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/dns/armdns v1.2.0 // indirect
81+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns v1.3.0 // indirect
82+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.9.0 // indirect
83+
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
84+
github.com/Azure/go-autorest/autorest v0.11.30 // indirect
85+
github.com/Azure/go-autorest/autorest/adal v0.9.24 // indirect
86+
github.com/Azure/go-autorest/autorest/azure/auth v0.5.13 // indirect
87+
github.com/Azure/go-autorest/autorest/azure/cli v0.4.7 // indirect
88+
github.com/Azure/go-autorest/autorest/date v0.3.1 // indirect
89+
github.com/Azure/go-autorest/autorest/to v0.4.1 // indirect
90+
github.com/Azure/go-autorest/logger v0.2.2 // indirect
91+
github.com/Azure/go-autorest/tracing v0.6.1 // indirect
92+
github.com/AzureAD/microsoft-authentication-library-for-go v1.4.1 // indirect
93+
github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87 // indirect
94+
github.com/akamai/AkamaiOPEN-edgegrid-golang v1.2.2 // indirect
95+
github.com/aliyun/alibaba-cloud-sdk-go v1.63.89 // indirect
96+
github.com/aws/aws-sdk-go-v2 v1.36.3 // indirect
97+
github.com/aws/aws-sdk-go-v2/config v1.29.8 // indirect
98+
github.com/aws/aws-sdk-go-v2/credentials v1.17.61 // indirect
99+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect
100+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect
101+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect
102+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
103+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect
104+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect
105+
github.com/aws/aws-sdk-go-v2/service/lightsail v1.43.0 // indirect
106+
github.com/aws/aws-sdk-go-v2/service/route53 v1.49.0 // indirect
107+
github.com/aws/aws-sdk-go-v2/service/sso v1.25.0 // indirect
108+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.0 // indirect
109+
github.com/aws/aws-sdk-go-v2/service/sts v1.33.16 // indirect
110+
github.com/aws/smithy-go v1.22.3 // indirect
111+
github.com/benbjohnson/clock v1.3.5 // indirect
72112
github.com/beorn7/perks v1.0.1 // indirect
73113
github.com/bmatcuk/doublestar/v4 v4.8.1 // indirect
114+
github.com/boombuler/barcode v1.0.2 // indirect
74115
github.com/cenkalti/hub v1.0.2 // indirect
75116
github.com/cenkalti/rpc2 v1.0.4 // indirect
76117
github.com/cespare/xxhash/v2 v2.3.0 // indirect
118+
github.com/civo/civogo v0.3.94 // indirect
119+
github.com/cloudflare/cloudflare-go v0.115.0 // indirect
77120
github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect
78121
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
79122
github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da // indirect
80-
github.com/digitalocean/go-libvirt v0.0.0-20250207191401-950a7b2d7eaf // indirect
123+
github.com/digitalocean/go-libvirt v0.0.0-20250226181018-4d5f24afb7c2 // indirect
124+
github.com/dimchansky/utfbom v1.1.1 // indirect
125+
github.com/dnsimple/dnsimple-go v1.7.0 // indirect
81126
github.com/dustin/go-humanize v1.0.1 // indirect
82127
github.com/eapache/channels v1.1.0 // indirect
83128
github.com/eapache/queue v1.1.0 // indirect
129+
github.com/exoscale/egoscale/v3 v3.1.10 // indirect
130+
github.com/fatih/structs v1.1.0 // indirect
131+
github.com/felixge/httpsnoop v1.0.4 // indirect
84132
github.com/fsnotify/fsnotify v1.8.0 // indirect
133+
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
134+
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
135+
github.com/ghodss/yaml v1.0.0 // indirect
136+
github.com/go-errors/errors v1.5.1 // indirect
85137
github.com/go-ini/ini v1.67.0 // indirect
86138
github.com/go-logr/stdr v1.2.2 // indirect
139+
github.com/go-playground/locales v0.14.1 // indirect
140+
github.com/go-playground/universal-translator v0.18.1 // indirect
141+
github.com/go-playground/validator/v10 v10.25.0 // indirect
142+
github.com/go-resty/resty/v2 v2.16.5 // indirect
143+
github.com/go-viper/mapstructure/v2 v2.2.1 // indirect
87144
github.com/goccy/go-json v0.10.5 // indirect
145+
github.com/gofrs/flock v0.12.1 // indirect
146+
github.com/gogo/protobuf v1.3.2 // indirect
147+
github.com/golang-jwt/jwt/v4 v4.5.1 // indirect
148+
github.com/google/go-querystring v1.1.0 // indirect
149+
github.com/google/gofuzz v1.2.0 // indirect
88150
github.com/google/renameio v1.0.1 // indirect
151+
github.com/google/s2a-go v0.1.9 // indirect
152+
github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect
153+
github.com/googleapis/gax-go/v2 v2.14.1 // indirect
154+
github.com/gophercloud/gophercloud v1.14.1 // indirect
155+
github.com/gophercloud/utils v0.0.0-20231010081019-80377eca5d56 // indirect
89156
github.com/gorilla/securecookie v1.1.2 // indirect
157+
github.com/hashicorp/errwrap v1.1.0 // indirect
158+
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
159+
github.com/hashicorp/go-multierror v1.1.1 // indirect
160+
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
161+
github.com/hashicorp/go-uuid v1.0.3 // indirect
90162
github.com/hashicorp/hcl v1.0.0 // indirect
163+
github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.138 // indirect
164+
github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df // indirect
91165
github.com/inconshreveable/mousetrap v1.1.0 // indirect
166+
github.com/infobloxopen/infoblox-go-client v1.1.1 // indirect
92167
github.com/jkeiser/iter v0.0.0-20200628201005-c8aa0ae784d1 // indirect
168+
github.com/jmespath/go-jmespath v0.4.0 // indirect
93169
github.com/josharian/native v1.1.0 // indirect
170+
github.com/json-iterator/go v1.1.12 // indirect
94171
github.com/k-sone/critbitgo v1.4.0 // indirect
172+
github.com/k0kubun/go-ansi v0.0.0-20180517002512-3bf9e2903213 // indirect
95173
github.com/klauspost/compress v1.18.0 // indirect
96-
github.com/klauspost/cpuid/v2 v2.2.9 // indirect
174+
github.com/klauspost/cpuid/v2 v2.2.10 // indirect
175+
github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect
97176
github.com/kr/fs v0.1.0 // indirect
177+
github.com/kylelemons/godebug v1.1.0 // indirect
178+
github.com/labbsr0x/bindman-dns-webhook v1.0.2 // indirect
179+
github.com/labbsr0x/goh v1.0.1 // indirect
180+
github.com/leodido/go-urn v1.4.0 // indirect
181+
github.com/linode/linodego v1.47.0 // indirect
182+
github.com/liquidweb/liquidweb-cli v0.7.0 // indirect
183+
github.com/liquidweb/liquidweb-go v1.6.4 // indirect
98184
github.com/magiconair/properties v1.8.9 // indirect
99185
github.com/mattn/go-isatty v0.0.20 // indirect
100186
github.com/mattn/go-runewidth v0.0.16 // indirect
101187
github.com/mdlayher/packet v1.1.2 // indirect
102188
github.com/mdlayher/socket v0.5.1 // indirect
189+
github.com/mimuret/golang-iij-dpf v0.9.1 // indirect
103190
github.com/minio/crc64nvme v1.0.1 // indirect
104191
github.com/minio/md5-simd v1.1.2 // indirect
105192
github.com/mitchellh/go-homedir v1.1.0 // indirect
193+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
194+
github.com/modern-go/reflect2 v1.0.2 // indirect
106195
github.com/muhlemmer/gu v0.3.1 // indirect
107196
github.com/muhlemmer/httpforwarded v0.1.0 // indirect
108197
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
198+
github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04 // indirect
199+
github.com/nrdcg/auroradns v1.1.0 // indirect
200+
github.com/nrdcg/bunny-go v0.0.0-20240207213615-dde5bf4577a3 // indirect
201+
github.com/nrdcg/desec v0.10.0 // indirect
202+
github.com/nrdcg/dnspod-go v0.4.0 // indirect
203+
github.com/nrdcg/freemyip v0.3.0 // indirect
204+
github.com/nrdcg/goacmedns v0.2.0 // indirect
205+
github.com/nrdcg/goinwx v0.10.0 // indirect
206+
github.com/nrdcg/mailinabox v0.2.0 // indirect
207+
github.com/nrdcg/namesilo v0.2.1 // indirect
208+
github.com/nrdcg/nodion v0.1.0 // indirect
209+
github.com/nrdcg/porkbun v0.4.0 // indirect
210+
github.com/nzdjb/go-metaname v1.0.0 // indirect
211+
github.com/opentracing/opentracing-go v1.2.1-0.20220228012449-10b1cf09e00b // indirect
212+
github.com/oracle/oci-go-sdk/v65 v65.84.0 // indirect
213+
github.com/ovh/go-ovh v1.7.0 // indirect
214+
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
109215
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
216+
github.com/peterhellberg/link v1.2.0 // indirect
217+
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
110218
github.com/pkg/errors v0.9.1 // indirect
111219
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
220+
github.com/pquerna/otp v1.4.0 // indirect
112221
github.com/prometheus/client_golang v1.21.0 // indirect
113222
github.com/prometheus/client_model v0.6.1 // indirect
114223
github.com/prometheus/common v0.62.0 // indirect
115224
github.com/prometheus/procfs v0.15.1 // indirect
225+
github.com/regfish/regfish-dnsapi-go v0.1.1 // indirect
116226
github.com/rivo/uniseg v0.4.7 // indirect
117227
github.com/rs/cors v1.11.1 // indirect
118228
github.com/rs/xid v1.6.0 // indirect
119229
github.com/russross/blackfriday/v2 v2.1.0 // indirect
230+
github.com/sacloud/api-client-go v0.2.10 // indirect
231+
github.com/sacloud/go-http v0.1.9 // indirect
232+
github.com/sacloud/iaas-api-go v1.14.0 // indirect
233+
github.com/sacloud/packages-go v0.0.11 // indirect
120234
github.com/sagikazarmark/locafero v0.7.0 // indirect
121235
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
236+
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.32 // indirect
237+
github.com/selectel/domains-go v1.1.0 // indirect
238+
github.com/selectel/go-selvpcclient/v3 v3.2.1 // indirect
239+
github.com/shopspring/decimal v1.4.0 // indirect
240+
github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9 // indirect
241+
github.com/softlayer/softlayer-go v1.1.7 // indirect
242+
github.com/softlayer/xmlrpc v0.0.0-20200409220501-5f089df7cb7e // indirect
243+
github.com/sony/gobreaker v1.0.0 // indirect
122244
github.com/sourcegraph/conc v0.3.0 // indirect
123245
github.com/spf13/afero v1.12.0 // indirect
124246
github.com/spf13/cast v1.7.1 // indirect
125247
github.com/spf13/viper v1.19.0 // indirect
126248
github.com/subosito/gotenv v1.6.0 // indirect
249+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1108 // indirect
250+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1108 // indirect
251+
github.com/tjfoc/gmsm v1.4.1 // indirect
252+
github.com/transip/gotransip/v6 v6.26.0 // indirect
127253
github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701 // indirect
254+
github.com/ultradns/ultradns-go-sdk v1.8.0-20241010134910-243eeec // indirect
255+
github.com/vinyldns/go-vinyldns v0.9.16 // indirect
128256
github.com/vishvananda/netns v0.0.5 // indirect
257+
github.com/volcengine/volc-sdk-golang v1.0.197 // indirect
258+
github.com/vultr/govultr/v3 v3.14.1 // indirect
259+
github.com/x448/float16 v0.8.4 // indirect
260+
github.com/yandex-cloud/go-genproto v0.0.0-20250227104522-20525f72be7d // indirect
261+
github.com/yandex-cloud/go-sdk v0.0.0-20250227104620-68cb3d5eea41 // indirect
129262
github.com/zitadel/logging v0.6.1 // indirect
130263
github.com/zitadel/schema v1.3.0 // indirect
264+
go.mongodb.org/mongo-driver v1.17.3 // indirect
131265
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
266+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 // indirect
132267
go.opentelemetry.io/otel v1.34.0 // indirect
133268
go.opentelemetry.io/otel/metric v1.34.0 // indirect
134269
go.opentelemetry.io/otel/trace v1.34.0 // indirect
135270
go.uber.org/multierr v1.11.0 // indirect
271+
go.uber.org/ratelimit v0.3.1 // indirect
136272
golang.org/x/mod v0.23.0 // indirect
137273
golang.org/x/net v0.35.0 // indirect
138-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250219182151-9fdb1cabc7b2 // indirect
274+
golang.org/x/time v0.10.0 // indirect
275+
google.golang.org/api v0.223.0 // indirect
276+
google.golang.org/genproto v0.0.0-20250224174004-546df14abb99 // indirect
277+
google.golang.org/genproto/googleapis/api v0.0.0-20250224174004-546df14abb99 // indirect
278+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250224174004-546df14abb99 // indirect
139279
google.golang.org/grpc v1.70.0 // indirect
280+
gopkg.in/inf.v0 v0.9.1 // indirect
140281
gopkg.in/ini.v1 v1.67.0 // indirect
282+
gopkg.in/ns1/ns1-go.v2 v2.13.0 // indirect
141283
gopkg.in/yaml.v3 v3.0.1 // indirect
284+
k8s.io/api v0.32.2 // indirect
285+
k8s.io/apimachinery v0.32.2 // indirect
286+
k8s.io/klog/v2 v2.130.1 // indirect
287+
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
288+
sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect
289+
sigs.k8s.io/yaml v1.4.0 // indirect
142290
)

0 commit comments

Comments
 (0)