Skip to content

Key Rotation

Use this page to rotate runtime signing keys without breaking verification of previously signed payloads.

Who This Is For

  • operators responsible for signing material
  • teams rotating keys on a regular security cadence
  • developers who need to understand why old public keys remain published

When To Use This

Use key rotation when the active signing key should change but existing signed runtime payloads must remain verifiable.

How It Works

The CLI surface is:

  • locksmith keys list
  • locksmith keys public
  • locksmith keys rotate

Key rotation behavior:

  • the keyset file is updated on disk
  • a new active key becomes the signer for new runtime responses
  • retired public keys remain available through GET /api/v1/system/public-keys

That last point is what keeps verification working for older signed payloads after rotation.

Example

List the keyset:

bash
./bin/locksmith keys list

Print published public keys:

bash
./bin/locksmith keys public

Rotate:

bash
./bin/locksmith keys rotate

After rotation, make sure the running service is using the updated keyset path and verify the published key list from the system endpoint.

Common Mistakes

  • deleting retired public keys too early
  • rotating the keyset file without ensuring the running service sees the updated file
  • assuming runtime verification can hardcode one permanent kid

Prototype docs shell for the rewrite workspace.