This bug bash focuses on verify with CRL
[Ratify v1.4.0-rc]
Supports CRL based on notation-core-go v1.2.0-rc1 and notation-go v1.3.0-rc1
Certificate validation is an essential step during signature validation. Currently Ratify supports checking for revoked certificates through OCSP supported by notation-go library. However, OCSP validation requires internet connection for each validation while CRL could be cached for better performance. As notary-project added the CRL support for notation signature validation, Ratify utilized it.
CRL download location (URL) can be obtained from the certificate's CRL Distribution Point (CDP) extension. If the certificate contains multiple CDP locations then each location download is attempted in sequential order, until a 200 response is received for any of the location. For each CDP location, Notary Project verification workflow will try to download the CRL. If the CRL cannot be downloaded within the timeout threshold the revocation result will be "revocation unavailable".
This instruction based on Ubuntu 22.04 LTS
Please install notation
following the instruction here
Please install docker engine
following the instruction here
Pleaes install kubectl
following the instruction here
Please install minikube
following the instruction here
Please install helm and helmfile from here helmfile with the following commands:
certchain_with_crl.pem
: the fullchain file that includes the leafleaf.crl
: the CRL file that includes the leaf certificate.leaf.key
: the private key of the leaf certificate.leaf_revoked.crl
: the CRL file that includes the revoked leaf certificate.intermediate.crl
: the CRL file that includes the intermediate certificate.intermediate_revoked.crl
: the CRL file that includes the revoked intermediateroot.crt
: the root certificate.Reference: https://notaryproject.dev/docs/user-guides/how-to/notation-config-file/#sample-of-signingkeysjson
Download the latest Ratify code base and build CLI
Development charts + images are published weekly and latest versions are tagged with rolling tags referenced in dev helmfile.
Deploy to cluster:
Update hostAliases
with following commands. The default deployment name is ratify
and RATIFY_NAMESPACE
is gatekeeper-system
Upgrade ratify-notation-inline-cert-0
to load root.crt
created from the script.
Update Trust Policy and Apply
Test Case 1. Successfully create the pod demo and pass revocation check
Test Case 2. Deploy fail due to revocation check
Test Case 3. Shut down CRL server revocation check fail by checking cache
Ratify added support for caching CRLs response to improve availability, latency and avoid network overhead.
To enable or disable CRL cache with CLI, simply edit the crl.cache.enabled
in [config.json].
For Kubernetes scenarios, update the crl.cache.enabled
in values.yaml
of Ratify Helm Chart.
For bug bash focuses on Helm chart rendering of the Notation verifier: https://hackmd.io/@-Kl8GpDUT7WroKlFboALHw/HktQaDX8kl
We have the dev image ready for test: The ratify image and ratify-crds image for dev builds exist as separate packages on Github here and here
dev helm chart: Package ratify-chart-dev/ratify