boulder/sa
Aaron Gable 09195e6804
ocsp-responder: get minimal status info from SA (#6293)
Add a new `GetRevocationStatus` gRPC method to the SA which retrieves
only the subset of the certificate status metadata relevant to
revocation, namely whether the certificate has been revoked, when it was
revoked, and the revocation reason. Notably, this method is our first
use of the `goog.protobuf.Timestamp` type in a message, which is more
ergonomic and less prone to errors than using unix nanoseconds.

Use this new method in ocsp-responder's checked_redis_source, to avoid
having to send many other pieces of metadata and the full ocsp response
bytes over the network. It provides all the information necessary to
determine if the response from Redis is up-to-date.

Within the checked_redis_source, use this new method in two different
ways: if only a database connection is configured (as is the case today)
then get this information directly from the db; if a gRPC connection to
the SA is available then prefer that instead. This may make requests
slower, but will allow us to remove database access from the hosts which
run the ocsp-responder today, simplifying our network.

The new behavior consists of two pieces, each locked behind a config
gate:
- Performing the smaller database query is only enabled if the
  ocsp-responder has the `ROCSPStage3` feature flag enabled.
- Talking to the SA rather than the database directly is only enabled if
  the ocsp-responder has an `saService` gRPC stanza in its config.

Fixes #6274
2022-08-16 16:37:24 -07:00
..
_db Remove fqdnsets_old workaround (#6054) 2022-04-21 16:39:35 -07:00
_db-next Remove fqdnsets_old workaround (#6054) 2022-04-21 16:39:35 -07:00
proto ocsp-responder: get minimal status info from SA (#6293) 2022-08-16 16:37:24 -07:00
satest Remove sa-wrappers.go (#5663) 2021-09-27 13:25:41 -07:00
testdata Support writing OCSP to Redis on revocation (#6012) 2022-04-01 13:59:56 -06:00
database.go Don't panic on duplicate db metrics (#6247) 2022-07-23 11:11:15 -07:00
database_test.go Enhancements to SQL driver tuning via JSON config (#5235) 2021-01-25 15:34:55 -08:00
ip_range_test.go Remove all stray copyright headers and appends the initial line to LICENSE.txt (#1853) 2016-05-31 12:32:04 -07:00
metrics.go Don't panic on duplicate db metrics (#6247) 2022-07-23 11:11:15 -07:00
migrations.sh Run db-next migrations with config-next configuration (#5320) 2021-03-11 14:45:32 -08:00
model.go ocsp-responder: get minimal status info from SA (#6293) 2022-08-16 16:37:24 -07:00
model_test.go Unify how we do streaming database selects (#6176) 2022-06-24 14:31:46 -07:00
precertificates.go ROCSP Stage 6: Never write OCSP responses to DB (#6284) 2022-08-10 15:31:26 -07:00
precertificates_test.go ROCSP Stage 6: Never write OCSP responses to DB (#6284) 2022-08-10 15:31:26 -07:00
rate_limits.go GRPC: Unwrap SA Count methods (#5616) 2021-08-30 15:54:42 -07:00
rate_limits_test.go GRPC: Unwrap SA Count methods (#5616) 2021-08-30 15:54:42 -07:00
sa.go ocsp-responder: get minimal status info from SA (#6293) 2022-08-16 16:37:24 -07:00
sa_test.go Fix merge conflict in sa_test.go (#6288) 2022-08-10 16:44:37 -07:00
test-cert.der Store a DB of issued names. 2015-09-28 19:37:50 -07:00
test-cert2.der Implement rate limiting by domain name. 2015-10-04 21:04:26 -07:00
type-converter.go Improve error checking paradigm (#5920) 2022-02-01 14:42:43 -07:00
type-converter_test.go Enable additional linters (#6106) 2022-05-11 13:58:58 -07:00
www.eff.org.der Add initial certificate status in SA. 2015-04-23 19:52:34 -07:00