Commit Graph

193 Commits

Author SHA1 Message Date
Jacob Hoffman-Andrews c0ffbac7a8
sa: truncate times in type converter (#7556)
We believe the MariaDB query planner generates inefficient query plans
when a time index is queried using high precision (nanosecond) times.
This uses the updated borp from[1] to automatically truncate
`time.Time` and `*time.Time` in query parameters.

[1]: https://github.com/letsencrypt/borp/pull/11

Part of #5437
2024-06-24 11:26:34 -07:00
dependabot[bot] 805ae53452
build(deps): bump the aws group with 3 updates (#7553)
Bumps the aws group with 3 updates:
[github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2),
[github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2)
and
[github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 11:01:47 -04:00
dependabot[bot] daa5aefb43
Bump the aws group with 4 updates (#7552)
- Updates `github.com/aws/aws-sdk-go-v2` from 1.25.0 to 1.27.2
- Updates `github.com/aws/aws-sdk-go-v2/config` from 1.26.3 to 1.27.18
- Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.50.2 to 1.55.1
- Updates `github.com/aws/smithy-go` from 1.20.0 to 1.20.2

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 17:05:32 -04:00
dependabot[bot] 6b4577ecc4
update otel dependencies to v1.27.0 and v0.52.0 (#7496)
Directly update:
- go.opentelemetry.io/otel/* from v1.26.0 to v1.27.0
- go.opentelemetry.io/contrib/* from v0.51.0 to v0.52.0

Indirectly update:
- google.golang.org/protobuf from v1.33.0 to v1.34.0

This update breaks some of our existing otel grpc interceptors, but in
return allows us to use the newer grpc StatsHandler mechanism, while
still filtering out health-check requests.

Fixes https://github.com/letsencrypt/boulder/issues/7235
2024-05-29 15:46:35 -07:00
Aaron Gable 89213f9214
Use generic types for gRPC stream implementations (#7501)
Update the version of protoc-gen-go-grpc that we use to generate Go gRPC
code from our proto files, and update the versions of other gRPC tools
and libraries that we use to match. Turn on the new
`use_generic_streams` code generation flag to change how
protoc-gen-go-grpc generates implementations of our streaming methods,
from creating a wholly independent implementation for every stream to
using shared generic implementations.

Take advantage of this code-sharing to remove our SA "wrapper" methods,
now that they have truly the same signature as the SARO methods which
they wrap. Also remove all references to the old-style stream names
(e.g. foopb.FooService_BarMethodClient) and replace them with the new
underlying generic names, for the sake of consistency. Finally, also
remove a few custom stream test mocks, replacing them with the generic
mocks.ServerStreamClient.

Note that this PR does not change the names in //mocks/sa.go, to avoid
conflicts with work happening in the pursuit of
https://github.com/letsencrypt/boulder/issues/7476. Note also that this
PR updates the version of protoc-gen-go-grpc that we use to a specific
commit. This is because, although a new release of grpc-go itself has
been cut, the codegen binary is a separate Go module with its own
releases, and it hasn't had a new release cut yet. Tracking for that is
in https://github.com/grpc/grpc-go/issues/7030.
2024-05-24 13:54:25 -07:00
dependabot[bot] 1053352d1f
build(deps): bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.46.1 to 0.51.0 (#7467)
Bumps
[go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib)
from 0.46.1 to 0.51.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aaron Gable <aaron@letsencrypt.org>
2024-05-20 12:14:27 -04:00
Aaron Gable 6ee675f2f0
Update public suffix list (#7484)
It's been one month since the last PSL update.

Update:
- github.com/weppos/publicsuffix-go from
v0.30.3-0.20240411085455-21202160c2ed to
v0.30.3-0.20240510084413-5f1d03393b3d
- golang.org/x/crypto from v0.22.0 to v0.23.0 (no changes)
- golang.org/x/net from v0.24.0 to v0.25.0
- golang.org/x/term from v0.19.0 to v0.20.0 (no changes)
- golang.org/x/text from v0.14.0 to v0.15.0 (no changes)
- golang.org/x/sys from v0.19.0 to v0.20.0

Fixes https://github.com/letsencrypt/boulder/issues/7483
2024-05-14 10:10:20 -04:00
Phil Porada 42b2240481
test: Update eggsampler/acme to support draft-ietf-acme-ari-03 (#7470)
`Eggsampler/acme` v3.6.0 has been
[released](https://github.com/eggsampler/acme/releases/tag/v3.6.0). I've
updated the ARI integration tests to issue replacement orders.

Fixes https://github.com/letsencrypt/boulder/issues/7463

---------

Co-authored-by: Aaron Gable <aaron@letsencrypt.org>
2024-05-08 11:01:27 -04:00
Aaron Gable 2b8dea9821
Update publicsuffix-go (#7429)
We last updated the PSL two months ago, and the latest officially-tagged
release of publicsuffic-go is just one month old, but the domain
prompting the latest request to update the PSL landed just a few days
ago, so update to the latest commit rather than the latest release.

Also incidentally updates x/crypto, x/net, x/term, and x/sys, but brings
in no meaningful updates for any of them.

Fixes https://github.com/letsencrypt/boulder/issues/7428
2024-04-15 11:37:11 -07:00
dependabot[bot] 393beac0a1
build(deps): bump golang.org/x/sync from 0.6.0 to 0.7.0 (#7426)
Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.6.0 to
0.7.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-12 12:30:55 -04:00
Aaron Gable 7086537553
Update golang.org/x/net for security advisory (#7413)
This will fix the error govulncheck is reporting.
2024-04-04 12:50:42 -04:00
Phil Porada 5f616ccdb9
Upgrade go-jose from v2.6.1 to v.4.0.1 (#7345)
Upgrade from the old go-jose v2.6.1 to the newly minted go-jose v4.0.1. 
Cleans up old code now that `jose.ParseSigned` can take a list of
supported signature algorithms.

Fixes https://github.com/letsencrypt/boulder/issues/7390

---------

Co-authored-by: Aaron Gable <aaron@letsencrypt.org>
2024-04-02 17:49:51 -04:00
dependabot[bot] f0ade6b2cb
build(deps): bump github.com/eggsampler/acme/v3 from 3.4.0 to 3.5.0 (#7391) 2024-03-20 15:21:16 -07:00
dependabot[bot] 206c35f099
build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#7384)
Updates google.golang.org/protobuf from 1.32.0 to 1.33.0
Also updates github.com/golang/protobuf from 1.5.3 to 1.5.4
2024-03-19 10:39:33 -07:00
dependabot[bot] c175272335
build(deps): bump go.opentelemetry.io/otel/trace from 1.21.0 to 1.24.0 (#7343)
Bumps
[go.opentelemetry.io/otel/trace](https://github.com/open-telemetry/opentelemetry-go)
from 1.21.0 to 1.24.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-14 13:36:52 -04:00
dependabot[bot] 34b705f293
build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.48.0 to 1.50.2 (#7333)
Bumps
[github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2)
from 1.48.0 to 1.50.2.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-26 10:31:30 -05:00
Matthew McPherrin 96f1240603
Update publicsuffix-go (#7334) 2024-02-21 17:51:26 -05:00
Aaron Gable 10e894a172
Create new admin tool (#7276)
Create a new administration tool "bin/admin" as a successor to and
replacement of "admin-revoker".

This new tool supports all the same fundamental capabilities as the old
admin-revoker, including:
- Revoking by serial, by batch of serials, by incident table, and by
private key
- Blocking a key to let bad-key-revoker take care of revocation
- Clearing email addresses from all accounts that use them

Improvements over the old admin-revoker include:
- All commands run in "dry-run" mode by default, to prevent accidental
executions
- All revocation mechanisms allow setting the revocation reason,
skipping blocking the key, indicating that the certificate is malformed,
and controlling the number of parallel workers conducting revocation
- All revocation mechanisms do not parse the cert in question, leaving
that to the RA
- Autogenerated usage information for all subcommands
- A much more modular structure to simplify adding more capabilities in
the future
- Significantly simplified tests with smaller mocks

The new tool has analogues of all of admin-revokers unit tests, and all
integration tests have been updated to use the new tool instead. A
future PR will remove admin-revoker, once we're sure SRE has had time to
update all of their playbooks.

Fixes https://github.com/letsencrypt/boulder/issues/7135
Fixes https://github.com/letsencrypt/boulder/issues/7269
Fixes https://github.com/letsencrypt/boulder/issues/7268
Fixes https://github.com/letsencrypt/boulder/issues/6927
Part of https://github.com/letsencrypt/boulder/issues/6840
2024-02-07 09:35:18 -08:00
dependabot[bot] 7fa2237417
build(deps): bump github.com/miekg/dns from 1.1.55 to 1.1.58 (#7279)
Bumps [github.com/miekg/dns](https://github.com/miekg/dns) from 1.1.55
to 1.1.58.
2024-02-02 13:28:05 -05:00
Matthew McPherrin 56c10c613c
Update zlint (#7252)
Upgrade to zlint v3.6.0

Two new lints are triggered in various places:
aia_contains_internal_names is ignored in integration test
configurations, and unit tests are updated to have more realistic URLs.
The w_subject_common_name_included lint needs to be ignored where we'd
ignored n_subject_common_name_included before.

Related to https://github.com/letsencrypt/boulder/issues/7261
2024-01-16 11:50:37 -08:00
dependabot[bot] c47e95e75a
build(deps): bump github.com/aws/aws-sdk-go-v2
Update AWS SDK v2, and its dependencies and subpackages:

- ask-sdk-go-v2: v1.22.1 -> v1.24.1
- aws-sdk-go-v2/config: v1.18.25 -> v1.26.3
- aws-sdk-go-v2/config: v1.18.25 -> v1.48.0
- smithy-go: v1.16.0 -> v1.19.0
2024-01-08 13:27:17 -08:00
Matthew McPherrin e8d382aec0
Upgrade the protobuf and grpc dependencies in Boulder (#7232)
Protobuf v1.32 fixes a potential stack overflow crash. Boulder doesn't
expose grpc externally so the risk is minimal, but it seems prudent to
upgrade on a regular cadence.  IE, this is not a security fix for Boulder.
2024-01-08 11:23:23 -08:00
dependabot[bot] 21fc191273
build(deps): bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.44.0 to 0.46.1 (#7233)
Bumps
[go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib)
from 0.44.0 to 0.46.1.
2024-01-02 12:44:53 -05:00
dependabot[bot] 238518da55
build(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 (#7223)
Changelog: https://github.com/golang/crypto/compare/v0.15.0...v0.17.0
2023-12-20 11:38:15 -08:00
dependabot[bot] 289284ad6e
build(deps): bump golang.org/x/term from 0.13.0 to 0.15.0 (#7210)
Updates golang.org/x/term and golang.org/x/sys. Changelogs:
- https://github.com/golang/term/compare/v0.13.0...v0.15.0
- https://github.com/golang/sys/compare/v0.13.0...v0.15.0
2023-12-13 16:23:01 -08:00
Aaron Gable eda6e4cb4a
Update OTel dependencies to latest (#7206)
This resolves https://github.com/advisories/GHSA-8pgv-569h-w5rw and
https://github.com/advisories/GHSA-rcjv-mgp8-qvmr, both DoS attacks via
metric cardinality explosion in the default OTel http and gRPC
middleware.
2023-12-13 09:33:39 -05:00
dependabot[bot] deccb0346d
build(deps): bump github.com/redis/go-redis/v9 from 9.2.1 to 9.3.0 (#7186)
Bumps [github.com/redis/go-redis/v9](https://github.com/redis/go-redis)
from 9.2.1 to 9.3.0.
2023-12-12 10:09:12 -05:00
dependabot[bot] 03b0258b53
build(deps): bump golang.org/x/text from 0.13.0 to 0.14.0 (#7160)
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.13.0 to
0.14.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 15:58:15 -05:00
dependabot[bot] de58ad1318
build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.40.0 to 1.42.0 (#7145)
Bumps
[github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2)
from 1.40.0 to 1.42.0.
2023-11-14 16:35:02 -05:00
Matthew McPherrin 75439eab4b
Replace hpcloud/tail with nxadm/tail (#7152)
The hpcloud version appears abandoned, with numerous unfixed bugs
including ones that can cause it to miss data.  The nxadm fork is
maintained.

The updated tail also pulls in an updated fsnotify. We had it vendored
at two paths before, so this has a side benefit of simplifying us to
having just one copy.
2023-11-09 16:30:15 -08:00
Aaron Gable 617b6edea4
Update google.golang.org/grpc to v1.59.0 (#7130)
This version contains mitigations for the HTTP/2 rapid-reset DoS vector.
See https://github.com/advisories/GHSA-m425-mq94-257g for details.

Changelog: https://github.com/grpc/grpc-go/compare/v1.54.0...v1.59.0
2023-11-02 10:20:14 -04:00
dependabot[bot] 50ec4786e4
build(deps): bump github.com/redis/go-redis/v9 from 9.1.0 to 9.2.1 (#7107)
Bumps https://github.com/redis/go-redis from 9.1.0 to 9.2.1.
- Release notes: https://github.com/redis/go-redis/releases/tag/v9.2.1
- Changelog: https://github.com/redis/go-redis/compare/v9.1.0...v9.2.1
2023-10-27 09:12:54 -07:00
dependabot[bot] 1aa304063d
build(deps): bump golang.org/x/net from 0.11.0 to 0.17.0 (#7113)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.11.0 to 0.17.0.
2023-10-19 11:52:58 -04:00
dependabot[bot] ebd87d4352
build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.31.0 to 1.40.0 (#7101)
Bumps github.com/aws/aws-sdk-go-v2/service/s3 from 1.31.0 to 1.40.0.
- Release notes: https://github.com/aws/aws-sdk-go-v2/releases
- Commits: aws/aws-sdk-go-v2@service/s3/v1.31.0...service/s3/v1.40.0
2023-09-28 17:30:12 -07:00
Aaron Gable a70fc604a3
Use go1.21's stdlib slices package (#7074)
As of go1.21, there's a new standard library package which provides
basically the same (generic!) methods as the x/exp/slices package has
been. Now that we're on go1.21, let's use the more stable package.

Fixes https://github.com/letsencrypt/boulder/issues/6951
Fixes https://github.com/letsencrypt/boulder/issues/7032
2023-09-08 13:46:46 -07:00
Aaron Gable 58ec67c7a8
Remove go1.20 from CI (#7071)
We now deploy go1.21.1 in both Staging and in Prod.
2023-09-08 14:32:51 -04:00
dependabot[bot] 6d76a0f91e
build(deps): bump github.com/miekg/dns from 1.1.50 to 1.1.55 (#7067)
Bumps github.com/miekg/dns from 1.1.50 to 1.1.55.

Changelog: https://github.com/miekg/dns/compare/v1.1.50...v1.1.55
2023-09-06 20:02:00 -07:00
dependabot[bot] fa028b4394
build(deps): bump golang.org/x/term from 0.9.0 to 0.11.0 (#7046)
Bumps [golang.org/x/term](https://github.com/golang/term) from 0.9.0 to
0.11.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-01 13:40:17 -04:00
Samantha 4ed54ff9c6
dependencies: Update go-redis from v8 to v9 (#7041)
Updated so we can access the `SetAddrs()` method added to `*redis.Ring`
in `v9` in #7042.

Part of #5545
2023-08-22 13:06:25 -04:00
dependabot[bot] 4768d2df2c
build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.18.1 to 1.20.1 (#7039)
Bumps
[github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2)
from 1.18.1 to 1.20.1.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-18 13:03:05 -04:00
dependabot[bot] 1962d8687c
build(deps): bump github.com/aws/smithy-go from 1.13.5 to 1.14.1 (#7033)
Bumps [github.com/aws/smithy-go](https://github.com/aws/smithy-go) from
1.13.5 to 1.14.1.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-10 13:24:37 -04:00
Jacob Hoffman-Andrews 725f190c01
ca: remove orphan queue code (#7025)
The `orphanQueueDir` config field is no longer used anywhere.

Fixes #6551
2023-08-02 16:04:28 -07:00
dependabot[bot] 4da9853c9d
build(deps): bump google.golang.org/protobuf from 1.30.0 to 1.31.0 (#7012)
Bumps google.golang.org/protobuf from 1.30.0 to 1.31.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-27 11:14:24 -04:00
dependabot[bot] 75acd40df1
build(deps): bump github.com/google/certificate-transparency-go from 1.1.4 to 1.1.6 (#6975)
Update google/certificate-transparency-go from 1.1.4 to 1.1.6
Release notes: https://github.com/google/certificate-transparency-go/releases/tag/v1.1.6
Changelog: https://github.com/google/certificate-transparency-go/compare/v1.1.4...v1.1.6

Update prometheus/client_golang from v1.14.0 to v1.15.1
Release notes: https://github.com/prometheus/client_golang/releases/tag/v1.15.1
Changelog: https://github.com/prometheus/client_golang/compare/v1.14.0...v1.15.1

Update prometheus/client_model from v0.3.0 to v0.4.0
Release notes: https://github.com/prometheus/client_model/releases/tag/v0.4.0
Changelog: https://github.com/prometheus/client_model/compare/v0.3.0...v0.4.0

Update x/sync from v0.1.0 to v0.2.0
Changelog: https://github.com/golang/sync/compare/v0.1.0...v0.2.0

Minor updates to various indirect dependencies as well.

The prometheus/client_golang update changes the type of
`prometheus.Desc.variableLabels` from `[]string` to
`prometheus.ConstrainedLabels`, which changes the string representation
of that field, necessitating a minor test expectations update in
//rocsp/metrics_test.

Fixes https://github.com/letsencrypt/boulder/issues/4548
2023-07-21 11:28:56 -07:00
Jacob Hoffman-Andrews e955494955
Revert "Update go-sql-driver/mysql to v1.7.1" (#7006)
This reverts commit 0051277c71,
which was introduced by https://github.com/letsencrypt/boulder/pull/6976
2023-07-20 12:28:20 -07:00
Jacob Hoffman-Andrews 7d66d67054
It's borpin' time! (#6982)
This change replaces [gorp] with [borp].

The changes consist of a mass renaming of the import and comments / doc
fixups, plus modifications of many call sites to provide a
context.Context everywhere, since gorp newly requires this (this was one
of the motivating factors for the borp fork).

This also refactors `github.com/letsencrypt/boulder/db.WrappedMap` and
`github.com/letsencrypt/boulder/db.Transaction` to not embed their
underlying gorp/borp objects, but to have them as plain fields. This
ensures that we can only call methods on them that are specifically
implemented in `github.com/letsencrypt/boulder/db`, so we don't miss
wrapping any. This required introducing a `NewWrappedMap` method along
with accessors `SQLDb()` and `BorpDB()` to get at the internal fields
during metrics and logging setup.

Fixes #6944
2023-07-17 14:38:29 -07:00
Aaron Gable 0051277c71
Update go-sql-driver/mysql to v1.7.1 (#6976)
This update pulls in changes that we contributed upstream, which should
smooth interactions between Boulder and ProxySQL.

Release notes:
https://github.com/go-sql-driver/mysql/releases/tag/v1.7.1
Changelog:
https://github.com/go-sql-driver/mysql/compare/v1.5.0...v1.7.1
Relevant change: https://github.com/go-sql-driver/mysql/pull/1402
2023-07-11 12:51:44 -07:00
Aaron Gable cf770dfdef
Update zlint to v3.5.0 (#6977)
This brings in infrastructure to support linting CRLs.

Release notes: https://github.com/zmap/zlint/releases/tag/v3.5.0
Changelog: https://github.com/zmap/zlint/compare/v3.4.0...v3.5.0

Part of https://github.com/letsencrypt/boulder/issues/6934
2023-07-06 14:09:44 -04:00
dependabot[bot] 08017e436e
build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.18.0 to 1.18.1 (#6962)
Bumps
[github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2)
from 1.18.0 to 1.18.1.
2023-06-28 14:58:51 -04:00
Matthew McPherrin 66cfad1892
Update Public Suffix List (#6957)
Over on the community forum, there's been requests for the new .vn
domains.  weppos/publicsuffix-go hasn't had a release tagged in a little
while, so this is the result of:

    go get github.com/weppos/publicsuffix-go@latest
    go mod tidy
    go mod vendor
2023-06-26 11:19:06 -04:00