Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

allow relative paths for root, crt and key in ca.conf #1894

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions commands/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,13 @@ func appAction(ctx *cli.Context) error {
}
}

// allow paths relative to STEPPATH for root, crt and key
for i, root := range cfg.Root {
cfg.Root[i] = step.Abs(root)
}
cfg.IntermediateCert = step.Abs(cfg.IntermediateCert)
cfg.IntermediateKey = step.Abs(cfg.IntermediateKey)
Comment on lines +188 to +191
Copy link
Member

@hslatman hslatman Jun 20, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this logic can/should be part of config.LoadConfiguration. That should also allow for testing just this logic as part of the config package tests.

Changing the path in this way most likely results in a different value being marshaled and persisted at a different time. I think we should prevent that from happening. I think with how the config.Config struct is currently used, it'll likely require additional non-exported properties for the updated fields and a getter.

There are some "integration-like" tests that touch the config in https://github.com/smallstep/certificates/blob/master/authority/authority_test.go. They don't test the new behavior, but they can help in adding new tests for this. If you add new tests that operate on the appCommand, you can put them in a new sub dir of test/integration. I've recently started adding tests there, as we've generally been low on integration tests so far.


if cfg.AuthorityConfig != nil {
if token == "" && strings.EqualFold(cfg.AuthorityConfig.DeploymentType, pki.LinkedDeployment.String()) {
return errors.New(`'step-ca' requires the '--token' flag for linked deploy type.
Expand Down
Loading