open-vault/builtin/logical/pki
Alexander Scheel 44c3b736bf
Allow tidy to backup legacy CA bundles (#18645)
* Allow tidy to backup legacy CA bundles

With the new tidy_move_legacy_ca_bundle option, we'll use tidy to move
the legacy CA bundle from /config/ca_bundle to /config/ca_bundle.bak.
This does two things:

 1. Removes ca_bundle from the hot-path of initialization after initial
    migration has completed. Because this entry is seal wrapped, this
    may result in performance improvements.
 2. Allows recovery of this value in the event of some other failure
    with migration.

Notably, this cannot occur during migration in the unlikely (and largely
unsupported) case that the operator immediately downgrades to Vault
<1.11.x. Thus, we reuse issuer_safety_buffer; while potentially long,
tidy can always be run manually with a shorter buffer (and only this
flag) to manually move the bundle if necessary.

In the event of needing to recover or undo this operation, it is
sufficient to use sys/raw to read the backed up value and subsequently
write it to its old path (/config/ca_bundle).

The new entry remains seal wrapped, but otherwise isn't used within the
code and so has better performance characteristics.

Performing a fat deletion (DELETE /root) will again remove the backup
like the old legacy bundle, preserving its wipe characteristics.

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

* Add changelog

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

* Add documentation about new tidy parameter

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

* Add tests for migration scenarios

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

* Clean up time comparisons

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>
2023-01-11 12:12:53 -05:00
..
cmd/pki
backend.go Allow tidy to backup legacy CA bundles (#18645) 2023-01-11 12:12:53 -05:00
backend_test.go Allow tidy to backup legacy CA bundles (#18645) 2023-01-11 12:12:53 -05:00
ca_test.go Add issuer reference info on JSON endpoint (#18482) 2022-12-19 21:39:01 +00:00
ca_util.go
cert_util.go Refactor PKI to use shared storage context (#18266) 2022-12-08 09:27:02 -05:00
cert_util_test.go Refactor PKI to use shared storage context (#18266) 2022-12-08 09:27:02 -05:00
chain_test.go
chain_util.go
config_util.go
crl_test.go Refactor PKI to use shared storage context (#18266) 2022-12-08 09:27:02 -05:00
crl_util.go Refactor PKI to use shared storage context (#18266) 2022-12-08 09:27:02 -05:00
fields.go Allow tidy to backup legacy CA bundles (#18645) 2023-01-11 12:12:53 -05:00
integration_test.go
key_util.go
managed_key_util.go
ocsp.go Refactor PKI to use shared storage context (#18266) 2022-12-08 09:27:02 -05:00
ocsp_test.go
path_config_ca.go
path_config_cluster.go Add cluster_aia_path templating variable (#18493) 2023-01-10 09:51:37 -05:00
path_config_crl.go Refactor PKI to use shared storage context (#18266) 2022-12-08 09:27:02 -05:00
path_config_urls.go Add cluster_aia_path templating variable (#18493) 2023-01-10 09:51:37 -05:00
path_fetch.go Refactor PKI to use shared storage context (#18266) 2022-12-08 09:27:02 -05:00
path_fetch_issuers.go Correctly distinguish empty issuer names in PKI (#18466) 2023-01-10 10:04:30 -05:00
path_fetch_keys.go
path_intermediate.go
path_issue_sign.go
path_manage_issuers.go Refactor PKI to use shared storage context (#18266) 2022-12-08 09:27:02 -05:00
path_manage_keys.go
path_manage_keys_test.go
path_resign_crls.go
path_resign_crls_test.go
path_revoke.go Refactor PKI to use shared storage context (#18266) 2022-12-08 09:27:02 -05:00
path_roles.go
path_roles_test.go
path_root.go Allow tidy to backup legacy CA bundles (#18645) 2023-01-11 12:12:53 -05:00
path_sign_issuers.go
path_tidy.go Allow tidy to backup legacy CA bundles (#18645) 2023-01-11 12:12:53 -05:00
path_tidy_test.go Correctly handle issuer tidying in auto-tidy config (#18347) 2022-12-14 15:35:21 -05:00
secret_certs.go Refactor PKI to use shared storage context (#18266) 2022-12-08 09:27:02 -05:00
storage.go Allow tidy to backup legacy CA bundles (#18645) 2023-01-11 12:12:53 -05:00
storage_migrations.go
storage_migrations_test.go Allow tidy to backup legacy CA bundles (#18645) 2023-01-11 12:12:53 -05:00
storage_test.go
test_helpers.go
util.go Correctly distinguish empty issuer names in PKI (#18466) 2023-01-10 10:04:30 -05:00