Boulder has a nice handy challtestsrv package and command used for integration tests. Its small, stand-alone, and useful enough to live in its own repo. This will make it easy for Boulder's load-generator to use the common package and for Pebble's pebble-challtestsrv command to use it as well.
The challtestsrv package is ported over from Boulder mostly-as is with a few small improvements. Notably:
The TLS-ALPN-01 and HTTPS HTTP-01 features were split into two separate binds. This helps us preserve strict TLS-ALPN-01 challenge responses while also supporting HTTP-01 -> HTTPS HTTP-01 redirects. (See https://github.com/letsencrypt/boulder/issues/3962)
The "FAKE_DNS" env var is removed. Now there is a default IPv4 and a default IPv6 address that can be set via the management API. These default addresses are used for A/AAAA query responses when there is not a more specific mock.
Hardcoded Boulder specific mock DNS data is removed. In its place are new management API functions for adding/removing mock A, AAAA, and CAA records
The output is less noisy now. The DNS server no longer prints a line per reply.
Boulder has a nice handy
challtestsrv
package and command used for integration tests. Its small, stand-alone, and useful enough to live in its own repo. This will make it easy for Boulder's load-generator to use the common package and for Pebble's pebble-challtestsrv command to use it as well.The
challtestsrv
package is ported over from Boulder mostly-as is with a few small improvements. Notably: