Pebble v2.3.0
Features
- Added an ACME account "orders list" endpoint for finding order URLs associated with an account. See RFC 8555 §7.1.2.1.
- Updated pebble-challtestsrv with an API for mocking DNS
SERVFAIL
responses for a hostname. - Added support for ACME external account binding (EAB) for new account requests. See RFC 8555 §7.3.4.
Bug-fixes
- The
pebble-challtestsrv
's mock CNAME delete API is fixed to remove the CNAME mock record instead of the CAA mock record for the given hostname. - Changed
PEBBLE_ALTERNATE_ROOTS
intermediate certificates to have the same subject, matching the issuer of issued leaf certificate's. - Fixed key rollover request handling for requests that fail inner JWS verification.
- Finalize requests that include a CSR that specifies a certificate public key already used by an ACME account now receive a
badCSR
type problem. See RFC 8555 §11.1. - Authorizations for ACME-IP identifiers are fixed to only contain HTTP-01 and TLS-ALPN-01 challenges, not DNS-01. See draft-ietf-acme-ip §7.
- Added support for POST-as-GET requests in addition to GET/HEAD for directory and newNonce endpoints. See RFC §6.3
- Fixed handling of HTTP-01 validation requests that are redirected to a different port (e.g.
443
).
Misc
- A Subject Key Identifier value is now included in all issued certificates. See RFC 5280 §4.2.1.2.
- The Pebble ACME API and management API ports (
14000
and15000
) are now marked exposed in Dockerfile metadata. - TLS 1.3 for Pebble's validation requests is explicitly enabled by env var in the Docker environment.
- The project and CI now use Go 1.13 and
golangci-lint
v1.21.0
New configuration options
- The
PEBBLE_WFE_ORDERS_PER_PAGE
env var can be used to control the account orders list endpoint's pagination. By default up to 15 order URLs are returned per response. - The
"externalAccountBindingRequired"
config file boolean field can be used to control whether allnewAccount
requests must use external account binding. - The
"externalAccountMACKeys"
config file key/value object field can be used to specify external account binding key IDs and encoded MAC keys Seetest/config/pebble-config-external-account-binding.json
for an example.
Heartfelt thanks to @felixfontein, @sergioaugrod, @0pq76r, @Drakezul, @JoshVanL and @munnerz for their contributions to this release.