Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
closes #1869
Summary
currently, there is no standard method for creating cert chains for fulcio or tsa. the community has used an assortment of open source scripts/tools, but i thought it would be nice to have a small cloud agnostic go app to create/sign (via awskms, cloudkms, or azurekms) certificates. the smallstep crypto library is fairly comprehensive in its kms/cert capabilities.
@haydentherapper / @bobcallaway gave the go ahead in proceeding w/ this work.
Release Note
Documentation
Sigstore Certificate Maker
A tool for creating certificate chains for Sigstore services (Fulcio and Timestamp Authority).
Overview
This tool creates root and intermediate certificates for:
Requirements
Local Development
Clone and build the project locally:
Usage
The tool can be configured using either command-line flags or environment variables.
Command-Line Interface
Available flags:
--kms-type
: KMS provider type (awskms, cloudkms, azurekms)--kms-region
: KMS region (required for AWS KMS)--root-key-id
: KMS key identifier for root certificate--intermediate-key-id
: KMS key identifier for intermediate certificate--kms-vault-name
: Azure KMS vault name--kms-tenant-id
: Azure KMS tenant ID--kms-credentials-file
: Path to credentials file (for Google Cloud KMS)--root-template
: Path to root certificate template--intermediate-template
: Path to intermediate certificate template--root-cert
: Output path for root certificate (default: root.pem)--intermediate-cert
: Output path for intermediate certificate (default: intermediate.pem)Environment Variables
KMS_TYPE
: KMS provider type ("awskms", "cloudkms", "azurekms")KMS_REGION
: Region (required for AWS KMS, defaults to us-east-1)ROOT_KEY_ID
: Key identifier for root certificateINTERMEDIATE_KEY_ID
: Key identifier for intermediate certificateKMS_VAULT_NAME
: Azure Key Vault nameKMS_TENANT_ID
: Azure tenant IDKMS_CREDENTIALS_FILE
: Path to credentials file (for Google Cloud KMS)Provider-Specific Configuration Examples
AWS KMS
Google Cloud KMS
Azure KMS
Example Templates
Fulcio Root Template
Fulcio Intermediate/Leaf Template
Example Certificate Outputs
Fulcio Root CA Certificate
Fulcio Intermediate/Leaf Certificate
Running the Tool
Example for Fulcio with AWS KMS: