Commit Graph

1228 Commits (master)

Author SHA1 Message Date
Herman Slatman 4fd4227b73
Use shorter SCEP decrypter property names from linkedca 8 months ago
Herman Slatman 5fd70af2c8
Make API responses aware of the new SCEP decrypter properties 8 months ago
Herman Slatman 3ade92f8d5
Support both a decrypter key URI as well as PEM 8 months ago
Herman Slatman b6c95d7be2
Add additional properties to SCEP notify webhook request body 8 months ago
Herman Slatman 63257e0576
Add full certificate DER bytes to success notification webhook 8 months ago
Herman Slatman 52bc96760b
Add SCEP certificate issuance notification webhook 8 months ago
Herman Slatman a3c9dd796a
Merge branch 'herman/scep-provisioner-decrypter' of github.com:smallstep/certificates into herman/scep-provisioner-decrypter 8 months ago
Herman Slatman 69a53eec33
Merge branch 'master' into herman/scep-provisioner-decrypter 8 months ago
Dominic Evans 231b5d8406 chore(deps): upgrade github.com/go-chi/chi to v5
Upgrade chi to the v5 module path to avoid deprecation warning about v4
and earlier on the old module path.

See https://github.com/go-chi/chi/blob/v4.1.3/go.mod#L1-L4

Signed-off-by: Dominic Evans <dominic.evans@uk.ibm.com>
8 months ago
Herman Slatman 4e06bdbc51
Add `SignWithContext` method to authority and mocks 8 months ago
Herman Slatman b2301ea127
Remove the webhook `Do` method 8 months ago
Herman Slatman f3229d3e3c
Propagate (original) request ID to webhook requests
Technically the webhook request is a new request, so maybe the
`X-Request-ID` should not be set to the value of the original
request? But then the original request ID should be propageted
in the webhook request body, or using a different header.

The way the request ID is used in this functionality is actually
more like a tracing ID, so that may be an option too.
8 months ago
Max b7c4ed26fb
Use provisioner name in error message (#1524) 8 months ago
Herman Slatman 33e661ce7d
Add a dummy CSR to SCEP request body tests 8 months ago
Herman Slatman 36f1dd70bf
Add CSR to `SCEPCHALLENGE` webhook request body 8 months ago
Herman Slatman 98d015b5c3
Fix linting issues 8 months ago
Herman Slatman d9f56cdbdc
Merge branch 'master' into herman/scep-provisioner-decrypter 8 months ago
Herman Slatman 9d3b78ae49
Add `excludeIntermediate` to SCEP provisioner 8 months ago
Max e22166c628
provisionerOptionsToLinkedCA missing template and templateData (#1520) 9 months ago
Max 116ff8ed65
bump go.mod to go1.20 and associated linter fixes (#1518) 9 months ago
Remi Vichery 82b8e16d7f
Add all AWS identity document certificates
* move to use embed instead of a multi-line string
* add test to ensure all certificates are valid
* add test to ensure validity (no expired certificate)
9 months ago
Herman Slatman e182c620c8
Merge branch 'master' into herman/scep-provisioner-decrypter 10 months ago
Herman Slatman 645b6ffc18
Ensure no prompt is fired for loading provisioner decrypter 10 months ago
Mariano Cano 30ce9e65f7
Write configuration only if encoding succeeds
This commit fixes a problem when the ca.json is truncated if the
encoding of the configuration fails. This can happen by adding a new
provisioner with bad template data.

Related to smallstep/cli#994
10 months ago
Herman Slatman e2e9bf5494
Clarify some SCEP properties 10 months ago
Herman Slatman c0a1837cd9
Verify full decrypter/signer configuration at usage time
When changing the SCEP configuration it is possible that one
or both of the decrypter configurations required are not available
or have been provided in a way that's not usable for actual SCEP
requests.

Instead of failing hard when provisioners are loaded,
which could result in the CA not starting properly, this type of
problematic configuration errors will now be handled at usage
time instead.
10 months ago
Herman Slatman fc1fb51854
Improve SCEP authority initialization and reload 10 months ago
Herman Slatman 569a1be12c
Merge branch 'master' into herman/scep-provisioner-decrypter 10 months ago
Mariano Cano cce7d9e839
Address comments from code review 10 months ago
Mariano Cano c7c7decd5e
Add support for the disableSmallstepExtensions claim
This commit adds a new claim to exclude the Smallstep provisioner
extension from the generated certificates.

Fixes #620
10 months ago
Herman Slatman 1ce80cf740
Merge branch 'master' into herman/scep-provisioner-decrypter 10 months ago
Herman Slatman 567fc25404
Use the RSA decryption configuration for signing responses too 10 months ago
Mariano Cano 7061147885
Use step.Abs to load the certificate templates
step.Abs has been removed from crypto and they need to be set when those
methods are used
10 months ago
Herman Slatman 557672bb4b
Add some notes for SCEP provisioners 10 months ago
Mariano Cano 95887ebf40
Merge pull request #1481 from smallstep/remove-user-regex
Remove OIDC user regexp check
10 months ago
Josh Drake ff424fa944
Fix tests. 10 months ago
Josh Drake 904f416d20
Include authorization principal in provisioner webhooks. 10 months ago
Mariano Cano 5bfe96d8c7
Send X5C leaf certificate to webhooks
This commit adds a new property that will be sent to authorizing and
enriching webhooks when signing certificates using the X5C provisioner.
10 months ago
Mariano Cano 7fa97bedec
Remove OIDC user regexp check
This commit removes the regular expression check on OIDC usernames.
Although it is not recommended to use any character in a username,
it is possible to create and use them. The tool useradd has the flag
--badname and adduser has --allow-badname and --allow-all-names to
create new users with any character.

Moreover, it is possible to create any username with the rest of
provisioners.

Fixes #1436
10 months ago
Herman Slatman b2bf2c330b
Simplify SCEP provisioner context handling 12 months ago
Herman Slatman 8fc3a46387
Refactor the SCEP authority initialization
Instead of relying on an intermediate `scep.Service` struct,
initialize the `scep.Authority` directly. This removes one redundant
layer of indirection.
12 months ago
Herman Slatman 6985b4be62
Clean up the SCEP authority and provisioner 12 months ago
Herman Slatman a1f187e3df
Merge branch 'master' into herman/scep-provisioner-decrypter 12 months ago
Herman Slatman 180162bd6a
Refactor SCEP provisioner and decrypter 12 months ago
Herman Slatman 0377fe559b
Add basic version of provisioner specific SCEP decrypter 12 months ago
Mariano Cano 71fcdf8a0a
Fix linter errors from #1404 12 months ago
Ruslan Nugmanov 1031324273
add AWS public certificates for me-central-1 and ap-southeast-3
As per https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/verify-signature.html
12 months ago
max furman 8b256f0351
address linter warning for go 1.19 1 year ago
Herman Slatman 8c53dc9029
Use `require.NoError` where appropriate in provisioner tests 1 year ago
Herman Slatman 0153ff4377
Remove superfluous `GetChallengePassword` 1 year ago
Herman Slatman f9ec62f46c
Merge branch 'master' into herman/improve-scep-marshaling 1 year ago
Herman Slatman c73f157ea4
Remove unused error from challenge validation controller creator 1 year ago
Herman Slatman 4bb88adf63
Move SCEP checks after reload of provisioners in CA initialization 1 year ago
Herman Slatman e8c1e8719d
Refactor SCEP webhook validation 1 year ago
Herman Slatman ad4d8e6c68
Add `SCEPCHALLENGE` as valid webhook type in admin API 1 year ago
Herman Slatman 419478d1e5
Make SCEP webhook validation look better 1 year ago
Herman Slatman dfc56f21b8
Merge branch 'master' into herman/acme-da-tpm 1 year ago
Mariano Cano ac35f3489c
Remove unused certificate validators and modifiers
With the introduction of certificate templates some certificate
validators and modifiers are not used anymore. This commit deletes the
ones that are not used.
1 year ago
Remi Vichery 09cbe8ba65
fixup! Add identity token for all Azure cloud environments 1 year ago
Herman Slatman 6297bace1a
Merge branch 'master' into herman/acme-da-tpm 1 year ago
Remi Vichery b2c2eec76b
Add identity token for all Azure cloud environments
* Azure Public Cloud (default)
* Azure China Cloud
* Azure US Gov Cloud
* Azure German Cloud
1 year ago
LarsBingBong 0d5c40e059
Mark the IDP critical in the generated CRL data.
Trying to get CRL to work on my environment I've been reading up on [RFC5280](https://www.rfc-editor.org/rfc/rfc5280#section-5.2.5) ... and the IDP to be marked as `Critical`. I hope I'm correct and that my understanding on how to mark the IDP is critical.
Looking at e.g. `3470b1ec57/x509util/extensions_test.go (L48)` makes me think so.

---

Hopefully the above change - if accepted - can get CRL's to work on my environment. If not we're at least one step closer.
1 year ago
Herman Slatman 59462e826c
Improve testing errors for OIDC `authorizeToken` function 1 year ago
Herman Slatman 10958a124b
Add email address to error message returned for OIDC validation 1 year ago
max furman 7c1c32d86b
Fix linting errors 1 year ago
Carl Tashian cfcc95de93
Update policy test 1 year ago
Carl Tashian 96c6613739
Clarify policy lockout error message 1 year ago
Herman Slatman f1724ea8c5
Merge branch 'master' into herman/acme-da-tpm 1 year ago
Mariano Cano 5d87201abc
Ignore principals validations with OIDC
This commit will ignore principals validation when an OIDC provisioner
is used. When the principals in the server does not match the principals
given the validation was failing, even if the proper principals were set
by templates or webhooks. With this change OIDC will not validate the
principals and just set the default ones (name, name@example.org) plus
the ones in the templates.

This commit also includes a change in the templates to allow to pass
a provisioner to the $(step path)/ssh/config template

Related to #807
1 year ago
Herman Slatman c365d8580e
Move provisioner marshaling logic to api package 1 year ago
Herman Slatman f2e1c56c6c
Improve SCEP provisioner marshaling 1 year ago
Mariano Cano 002a058807
Use idpURL in json 1 year ago
Mariano Cano be4cd17b40
Add omit empty to IDPurl 1 year ago
foleyjohnm d6f9b3336d
Update config.go 2 years ago
foleyjohnm c79d4e9316 adding CRLIDP config 2 years ago
Mariano Cano ddd5057f63
Allow root and federated root bundles
This commit changes the parsing of root and federated roots to support
a bundle of certificates, this makes easier to configure a root rotation
when using helm charts, just appending the old root.
2 years ago
Mariano Cano 07c56f577a
Add support for linked RA renewals 2 years ago
Herman Slatman 85cd9a1277
Fix some ACME DA doc strings (slightly) 2 years ago
Herman Slatman c169defc73
Merge pull request #1136 from smallstep/herman/ignore-empty-acme-meta 2 years ago
Herman Slatman 920c4f02c5
Add additional properties to provisioner converters 2 years ago
Herman Slatman 02d679e160
Merge branch 'master' into herman/ignore-empty-acme-meta 2 years ago
Mariano Cano c7f226bcec
Add support for renew when using stepcas
It supports renewing X.509 certificates when an RA is configured with stepcas.
This will only work when the renewal uses a token, and it won't work with mTLS.

The audience cannot be properly verified when an RA is used, to avoid this we
will get from the database if an RA was used to issue the initial certificate
and we will accept the renew token.

Fixes #1021 for stepcas
2 years ago
Mariano Cano 2d582e5694
Remove use of time.Duration.Abs
time.Duration.Abs() was added in Go 1.19
2 years ago
Mariano Cano 89c8c6d0a0
Fix package name in tls test 2 years ago
Mariano Cano 51c7f56030
Truncate time to the second 2 years ago
Mariano Cano 812fee7630
Start crl generator before setting initOnce 2 years ago
Mariano Cano 59775fff0c
Merge branch 'master' into crl-support 2 years ago
Mariano Cano 8200d19894
Improve CRL implementation
This commit adds some changes to PR #731, some of them are:
- Add distribution point to the CRL
- Properly stop the goroutine that generates the CRLs
- CRL config validation
- Remove expired certificates from the CRL
- Require enable set to true to generate a CRL

This last point is the principal change in behaviour from the previous
implementation. The CRL will not be generated if it's not enabled, and
if it is enabled it will always be regenerated at some point, not only
if there is a revocation.
2 years ago
Herman Slatman b9f238ad4d
Add additional ACME `meta` properties to provisioner configuration 2 years ago
Herman Slatman 9d04e7d1dc
Remove period in log output 2 years ago
Herman Slatman 54c560f620
Improve configuration file initialization log output 2 years ago
Herman Slatman fd38dd34f9
Fix PR comments 2 years ago
Herman Slatman 49718f1bbb
Fix some comments 2 years ago
Herman Slatman 70da534893
Merge branch 'master' into herman/remote-management-helm 2 years ago
Mariano Cano aefdfc7be7
Use RawSubject on renew and rekey
Renew was not replicating exactly the subject because extra names
gets decoded into pkix.Name.Names, the non-default ones should be
added to pkix.Name.ExtraNames. Instead of doing that, this commit
sets the RawSubject that will also keep the order.

Fixes #1106
2 years ago
Herman Slatman cbc0864370
Remove TODO and clarify ACME revoke authorization method docs 2 years ago
Herman Slatman d981b9e0dc
Add `--admin-subject` flag to `ca init`
The first super admin subject can now be provided through the
`--admin-subject` flag when initializing a CA.

It's not yet possible to configure the subject of the first
super admin when provisioners are migrated from `ca.json` to the
database. This effectively limits usage of the flag to scenarios
in which the provisioners are written to the database immediately,
so when `--remote-management` is enabled. It currently also doesn't
work with Helm deployments, because there's no mechanism yet to
pass this type of option to the Helm chart.

This commit partially addresses https://github.com/smallstep/cli/issues/697
2 years ago
Herman Slatman da5d2b405c
Merge branch 'master' into herman/remote-management-helm 2 years ago
max furman 7203739369
Fix err assert linter warnings - upgrade outdated package 2 years ago
Herman Slatman 674206320c
Write updated CA configuration after migrating provisioners 2 years ago