boulder/va
Phil Porada 03152aadc6
RVA: Recheck CAA records (#7221)
Previously, `va.IsCAAValid` would only check CAA records from the
primary VA during initial domain control validation, completely ignoring
any configured RVAs. The upcoming
[MPIC](https://github.com/ryancdickson/staging/pull/8) ballot will
require that it be done from multiple perspectives. With the currently
deployed [Multi-Perspective
Validation](https://letsencrypt.org/2020/02/19/multi-perspective-validation.html)
in staging and production, this change brings us in line with the
[proposed phase
3](https://github.com/ryancdickson/staging/pull/8/files#r1368708684).
This change reuses the existing
[MaxRemoteValidationFailures](21fc191273/cmd/boulder-va/main.go (L35))
variable for the required non-corroboration quorum.
> Phase 3: June 15, 2025 - December 14, 2025 ("CAs MUST implement MPIC
in blocking mode*"):
>
>    MUST implement MPIC? Yes
> Required quorum?: Minimally, 2 remote perspectives must be used. If
using less than 6 remote perspectives, 1 non-corroboration is allowed.
If using 6 or more remote perspectives, 2 non-corroborations are
allowed.
>    MUST block issuance if quorum is not met: Yes.
> Geographic diversity requirements?: Perspectives must be 500km from 1)
the primary perspective and 2) all other perspectives used in the
quorum.
>
> * Note: "Blocking Mode" is a nickname. As opposed to "monitoring mode"
(described in the last milestone), CAs MUST NOT issue a certificate if
quorum requirements are not met from this point forward.

Adds new VA feature flags: 
* `EnforceMultiCAA` instructs a primary VA to command each of its
configured RVAs to perform a CAA recheck.
* `MultiCAAFullResults` causes the primary VA to block waiting for all
RVA CAA recheck results to arrive.


Renamed `va.logRemoteValidationDifferentials` to
`va.logRemoteDifferentials` because it can handle initial domain control
validations and CAA rechecking with minimal editing.

Part of https://github.com/letsencrypt/boulder/issues/7061
2024-01-25 16:23:25 -05:00
..
proto Update boulder-tools dependencies (#6129) 2022-05-20 14:24:01 -07:00
caa.go RVA: Recheck CAA records (#7221) 2024-01-25 16:23:25 -05:00
caa_test.go RVA: Recheck CAA records (#7221) 2024-01-25 16:23:25 -05:00
dns.go va: filter invalid UTF-8 from ProblemDetails (#6506) 2022-11-21 11:05:21 -08:00
dns_test.go RVA: Recheck CAA records (#7221) 2024-01-25 16:23:25 -05:00
http.go Fix typos (#7241) 2024-01-09 13:17:27 -08:00
http_test.go RVA: Recheck CAA records (#7221) 2024-01-25 16:23:25 -05:00
tlsalpn.go Run more go vet checks (#7255) 2024-01-17 12:27:55 -05:00
tlsalpn_test.go RVA: Recheck CAA records (#7221) 2024-01-25 16:23:25 -05:00
utf8filter.go va: filter invalid UTF-8 from ProblemDetails (#6506) 2022-11-21 11:05:21 -08:00
utf8filter_test.go va: filter invalid UTF-8 from ProblemDetails (#6506) 2022-11-21 11:05:21 -08:00
va.go RVA: Recheck CAA records (#7221) 2024-01-25 16:23:25 -05:00
va_test.go RVA: Recheck CAA records (#7221) 2024-01-25 16:23:25 -05:00