Skip to content

Commit 56257e6

Browse files
Merge remote-tracking branch 'origin/main' into add-dns-persist-support
2 parents 67e3acb + d2c1c53 commit 56257e6

86 files changed

Lines changed: 1582 additions & 1355 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/boulder-ci.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ jobs:
3636
matrix:
3737
# Add additional docker image tags here and all tests will be run with the additional image.
3838
BOULDER_TOOLS_TAG:
39-
- go1.25.5_2025-12-03
40-
- go1.25.7_2026-02-04
39+
- go1.26.1_2026-03-09
4140
# Tests command definitions. Use the entire "docker compose" command you want to run.
4241
tests:
4342
# Run ./test.sh --help for a description of each of the flags.
@@ -67,7 +66,7 @@ jobs:
6766
# use in tests. It will be set appropriately for each tag in the list
6867
# defined in the matrix.
6968
BOULDER_TOOLS_TAG: ${{ matrix.BOULDER_TOOLS_TAG }}
70-
BOULDER_VTCOMBOSERVER_TAG: vitessv23.0.0_2026-01-28
69+
BOULDER_VTCOMBOSERVER_TAG: vitessv23.0.0_2026-03-05
7170

7271
# Sequence of tasks that will be executed as part of the job.
7372
steps:
@@ -130,7 +129,7 @@ jobs:
130129
# When set to true, GitHub cancels all in-progress jobs if any matrix job fails. Default: true
131130
fail-fast: false
132131
matrix:
133-
go-version: [ '1.25.7' ]
132+
go-version: [ '1.26.1' ]
134133

135134
steps:
136135
# Checks out your repository under $GITHUB_WORKSPACE, so your job can access it

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
fail-fast: false
3636
matrix:
3737
GO_VERSION:
38-
- "1.25.5"
38+
- "1.26.1"
3939
runs-on: ubuntu-24.04
4040
permissions:
4141
contents: write

.github/workflows/try-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
fail-fast: false
2121
matrix:
2222
GO_VERSION:
23-
- "1.25.5"
23+
- "1.26.1"
2424
runs-on: ubuntu-24.04
2525
steps:
2626
- uses: actions/checkout@v6

cmd/boulder-observer/README.md

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ Prometheus.
3131
* [TLS](#tls)
3232
* [Schema](#schema-6)
3333
* [Example](#example-6)
34+
* [CCADB](#ccadb)
35+
* [Schema](#schema-7)
36+
* [Example](#example-7)
3437
* [Metrics](#metrics)
3538
* [Global Metrics](#global-metrics)
3639
* [obs_monitors](#obs_monitors)
@@ -255,6 +258,38 @@ monitors:
255258
response: valid
256259
```
257260

261+
#### CCADB
262+
263+
##### Schema
264+
265+
`allCertificatesCSVURL`: URL of the "V4 All Certificate Information (root and
266+
intermediate) in CCADB (CSV)" report from https://www.ccadb.org/resources.
267+
Default value works.
268+
269+
`certificatePEMsURL`: Base URL of the "All Certificate PEMs" report from
270+
https://www.ccadb.org/resources (i.e. without the "NotBeforeDecade"
271+
parameter). Default value works.
272+
273+
`caOwner`: The value of the "CA Owner" field to filter on in the "All
274+
Certificate Information" report. Default value works for ISRG.
275+
276+
`crlAgeLimit`: Error when a CRL is older than this.
277+
278+
`crlRegexp`: A regexp that matches our CRL URLs. Prevents fetching arbitrary
279+
URLs. At a minimum this should have strict matching on the origin part of the
280+
URL. Default value works.
281+
282+
##### Example
283+
284+
```yaml
285+
monitors:
286+
-
287+
period: 1h
288+
kind: CCADB
289+
settings:
290+
crlAgeLimit: 2h
291+
```
292+
258293
## Metrics
259294

260295
Observer provides the following metrics.
@@ -442,4 +477,4 @@ prometheus --config.file=boulder/test/prometheus/prometheus.yml
442477
### Viewing metrics locally
443478

444479
When developing with a local Prometheus instance you can use this link
445-
to view metrics: [link](http://0.0.0.0:9090)
480+
to view metrics: [link](http://0.0.0.0:9090)

cmd/boulder-observer/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import (
1313
)
1414

1515
func main() {
16+
defer cmd.AuditPanic()
17+
1618
debugAddr := flag.String("debug-addr", "", "Debug server address override")
1719
configPath := flag.String(
1820
"config", "config.yml", "Path to boulder-observer configuration file")

core/objects.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -197,10 +197,7 @@ func (ch Challenge) RecordsSane() bool {
197197
switch ch.Type {
198198
case ChallengeTypeHTTP01:
199199
for _, rec := range ch.ValidationRecord {
200-
// TODO(#7140): Add a check for ResolverAddress == "" only after the
201-
// core.proto change has been deployed.
202-
if rec.URL == "" || rec.Hostname == "" || rec.Port == "" || (rec.AddressUsed == netip.Addr{}) ||
203-
len(rec.AddressesResolved) == 0 {
200+
if rec.URL == "" || rec.Hostname == "" || rec.Port == "" || (rec.AddressUsed == netip.Addr{}) || len(rec.AddressesResolved) == 0 {
204201
return false
205202
}
206203
}
@@ -211,18 +208,13 @@ func (ch Challenge) RecordsSane() bool {
211208
if ch.ValidationRecord[0].URL != "" {
212209
return false
213210
}
214-
// TODO(#7140): Add a check for ResolverAddress == "" only after the
215-
// core.proto change has been deployed.
216-
if ch.ValidationRecord[0].Hostname == "" || ch.ValidationRecord[0].Port == "" ||
217-
(ch.ValidationRecord[0].AddressUsed == netip.Addr{}) || len(ch.ValidationRecord[0].AddressesResolved) == 0 {
211+
if ch.ValidationRecord[0].Hostname == "" || ch.ValidationRecord[0].Port == "" || (ch.ValidationRecord[0].AddressUsed == netip.Addr{}) || len(ch.ValidationRecord[0].AddressesResolved) == 0 {
218212
return false
219213
}
220214
case ChallengeTypeDNS01, ChallengeTypeDNSAccount01, ChallengeTypeDNSPersist01:
221215
if len(ch.ValidationRecord) > 1 {
222216
return false
223217
}
224-
// TODO(#7140): Add a check for ResolverAddress == "" only after the
225-
// core.proto change has been deployed.
226218
if ch.ValidationRecord[0].Hostname == "" {
227219
return false
228220
}

docker-compose.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ services:
88
context: test/boulder-tools/
99
# Should match one of the GO_CI_VERSIONS in test/boulder-tools/tag_and_upload.sh.
1010
args:
11-
GO_VERSION: 1.25.7
11+
GO_VERSION: 1.26.1
1212
environment:
1313
# To solve HTTP-01 and TLS-ALPN-01 challenges, change the IP in FAKE_DNS
1414
# to the IP address where your ACME client's solver is listening. This is
@@ -78,6 +78,8 @@ services:
7878

7979
bmariadb:
8080
image: mariadb:10.11.13
81+
volumes:
82+
- ./sa/db:/docker-entrypoint-initdb.d
8183
networks:
8284
bouldernet:
8385
aliases:
@@ -145,11 +147,13 @@ services:
145147
image: letsencrypt/boulder-vtcomboserver:${BOULDER_VTCOMBOSERVER_TAG:-latest}
146148
build:
147149
context: test/vtcomboserver/
150+
volumes:
151+
- ./:/boulder/
148152
environment:
149153
# By specifying KEYSPACES vttestserver will create the corresponding
150154
# databases on startup.
151-
KEYSPACES: boulder_sa,incidents_sa
152-
NUM_SHARDS: 1,1
155+
KEYSPACES: boulder_sa,incidents_sa,boulder_sa_next,incidents_sa_next
156+
NUM_SHARDS: 1,1,1,1
153157
networks:
154158
bouldernet:
155159
aliases:

features/features.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ type Config struct {
7878
// DNSAccount01Enabled controls support for the dns-account-01 challenge
7979
// type. When enabled, the server can offer and validate this challenge
8080
// during certificate issuance. This flag must be set to true in the
81-
// RA, VA, and WFE2 services for full functionality.
81+
// RA and VA services for full functionality.
8282
DNSAccount01Enabled bool
8383

8484
// DNSPersist01Enabled controls support for the dns-persist-01 challenge

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/letsencrypt/boulder
22

3-
go 1.25.0
3+
go 1.25
44

55
require (
66
github.com/aws/aws-sdk-go-v2 v1.41.0

mocks/sa.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -311,10 +311,6 @@ func (sa *StorageAuthorityReadOnly) GetOrderForNames(_ context.Context, _ *sapb.
311311
return nil, nil
312312
}
313313

314-
func (sa *StorageAuthorityReadOnly) CountPendingAuthorizations2(ctx context.Context, req *sapb.RegistrationID, _ ...grpc.CallOption) (*sapb.Count, error) {
315-
return &sapb.Count{}, nil
316-
}
317-
318314
func (sa *StorageAuthorityReadOnly) GetValidOrderAuthorizations2(ctx context.Context, req *sapb.GetOrderAuthorizationsRequest, _ ...grpc.CallOption) (*sapb.Authorizations, error) {
319315
return nil, nil
320316
}
@@ -323,10 +319,6 @@ func (sa *StorageAuthorityReadOnly) GetOrderAuthorizations(ctx context.Context,
323319
return nil, nil
324320
}
325321

326-
func (sa *StorageAuthorityReadOnly) CountInvalidAuthorizations2(ctx context.Context, req *sapb.CountInvalidAuthorizationsRequest, _ ...grpc.CallOption) (*sapb.Count, error) {
327-
return &sapb.Count{}, nil
328-
}
329-
330322
func (sa *StorageAuthorityReadOnly) GetValidAuthorizations2(ctx context.Context, req *sapb.GetValidAuthorizationsRequest, _ ...grpc.CallOption) (*sapb.Authorizations, error) {
331323
if req.RegistrationID != 1 && req.RegistrationID != 5 && req.RegistrationID != 4 {
332324
return &sapb.Authorizations{}, nil

0 commit comments

Comments
 (0)