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
Herman Slatman
b5837f20c9
Merge branch 'master' into herman/remote-management-helm
2 years ago
Herman Slatman
c9ee4a9f9d
Disable initialization log output if started with `--quiet`
2 years ago
Raal Goff
f7df865687
refactor crl config, add some tests
2 years ago
Mariano Cano
bd1938b0da
Add support for storing or sending attestation data to linkedca
2 years ago
Herman Slatman
cebb7d7ef0
Add automatic migration of provisioners
...
Provisioners stored in the CA configuration file are
automatically migrated to the database.
Currently no cleanup of the provisioners in the
configuration file yet. In certain situations this
may not work as expected, for example if the CA can't
write to the file. But it's probalby good to try it, so
that we can keep the configuration state of the CA consistent.
2 years ago
Andrew Reed
2c5e41b093
Fix webhook controller ignoring cert type
2 years ago
Raal Goff
d0e81af524
Merge branch 'master' into crl-support
2 years ago
Andrew Reed
7101fbb0ee
Provisioner webhooks ( #1001 )
2 years ago
Mariano Cano
906c5067b9
Include attestation roots on provisioner converters
2 years ago
Mariano Cano
2b19ba41fb
Merge branch 'master' into name-constraints
2 years ago
Mariano Cano
c9e7af3722
Use only name constraints in GetTLSCertificate
2 years ago
Mariano Cano
0bedd22850
Fix typos in WithX509IntermediateCerts comment
2 years ago
Mariano Cano
8374c0d26e
Fix some more extra white spaces
2 years ago
Mariano Cano
965d59c0a8
Fix comment typos and extra white spaces
2 years ago
Mariano Cano
2eba5326db
Remove policy validation on renew
2 years ago
Mariano Cano
ccd93684c3
Remove unused variable
2 years ago
Mariano Cano
246566a195
Change way to get hasNameConstraints
2 years ago
Mariano Cano
b94c0d09be
Set up test properly
2 years ago
Mariano Cano
0214e015a0
Clarify comments by code review
2 years ago
Mariano Cano
23045e1812
Clarify comments by code review
2 years ago
max furman
4c7a2ce3eb
Fix errors.As linter warnings
2 years ago
Mariano Cano
15dc7901e5
Fix unit tests
2 years ago
Mariano Cano
d68c765e20
Add context to errors
2 years ago
Mariano Cano
72e2c4eb2e
Render proper policy and constrains errors
2 years ago
Mariano Cano
4b79405dac
Check constraints and policy for leaf certificates too
2 years ago
Mariano Cano
a6e85cbbf6
Fix linter errors
2 years ago
Mariano Cano
325d8bca4f
Merge branch 'master' into name-constraints
2 years ago
max furman
2d4efc8292
Fix linter warnings
2 years ago
max furman
75bb196193
Add concurrency workflow config | fix broken test due to golang ver
2 years ago
max furman
120629edab
Do not use the templateError in the BadRequestErr
2 years ago
max furman
7c5e5b2b87
Even more linter fixes
2 years ago
max furman
f3d1863ec6
A few more linter errors
2 years ago
max furman
1e0ea6f958
more linting fixes
2 years ago
max furman
33458c88aa
Standardize linting file and fix or ignore lots of linting errors
2 years ago
Mariano Cano
f0a24bd8ca
Add acme property to enable challenges
...
Fixes #1027
2 years ago
Mariano Cano
567d96c771
Revert "Run on plaintext HTTP to support Cloud Run"
...
This reverts commit 09b9673a60
.
2 years ago
Mariano Cano
191d9e8629
Use go.step.sm/crypto to set the permanent identifier
2 years ago
Mariano Cano
debe565e42
Validate constraints on Sign and Renew/Rekey
...
Fixes #1060
2 years ago
Mariano Cano
89b6aa924a
Normalize IPs in matchIPConstraint
2 years ago
Brandon Weeks
f3d2bd7a19
Run on plaintext HTTP to support Cloud Run
2 years ago
Herman Slatman
25cbe02b9e
Add provisioner template validation
...
Fixes #1012
2 years ago
Max
2de7d3fcf0
Update authority/provisioner/claims.go
...
Co-authored-by: Mariano Cano <mariano@smallstep.com>
2 years ago
max furman
ab0d2503ae
Standardize linting file and fix or ignore lots of linting errors
2 years ago
Mariano Cano
3f58f30b21
Name tests properly
2 years ago
Mariano Cano
75bff055fc
Add StatusCoder to ConstraintError
2 years ago
Mariano Cano
2959aa676d
Add helper ValidateCertificate
2 years ago
Mariano Cano
8b54e25f64
Allow nil engines
2 years ago
Mariano Cano
2a15e3eee1
Rename constraint.Service to constraint.Engine
2 years ago
Mariano Cano
45e594f98c
Make the constraint service public
2 years ago
Mariano Cano
7bea2f4d0e
Add more constraint unit tests
2 years ago
Mariano Cano
495494ce8f
Return a typed error
2 years ago
Mariano Cano
6686f0437d
Remove x509 prefixes
2 years ago
Mariano Cano
0263468424
Initial work on name constraints validation
...
Issue #1060
2 years ago
Mariano Cano
34c6c65671
Pass attestation information to the Sign method
...
Attestation information might be useful in authorizing webhooks
2 years ago
Mariano Cano
42102d88d5
Fix merge and add unit tests
2 years ago
Mariano Cano
ee7307bd41
Cherry-pick acme.go from acdfdf3
2 years ago
Mariano Cano
8fc4a58242
Fix nil pointer exception, missing error
2 years ago
Raal Goff
40baf73dff
remove incorrect check on revoked certificate dates, add mutex lock for generating CRLs,
2 years ago
Mariano Cano
4e19aa4c52
Add cache duration if crl is set
2 years ago
Mariano Cano
0829f37fe8
Define a default crl cache duration
2 years ago
Mariano Cano
4a4f7ca9ba
Fix panic if cacheDuration is not set
2 years ago
Mariano Cano
bb0210e875
Fix typo in linkedca variable
2 years ago
Mariano Cano
1e098aef5b
Fixes ACMEAttestationFormat comment
2 years ago
Mariano Cano
66407139e5
Add methods to convert attestation formats
2 years ago
Mariano Cano
ba42aaf865
Add attestationFormat property in the ACME provisioner
2 years ago
Mariano Cano
b2119e9f2c
Merge pull request #977 from smallstep/device-attestation
...
Device attestation
2 years ago
Mariano Cano
fd4e96d1f4
Rename method to IsChallengeEnabled
2 years ago
Mariano Cano
c77b4ff9c5
Fix linter errors
2 years ago
Mariano Cano
59c5219a07
Use a type for acme challenges
2 years ago
Raal Goff
924082bb49
fix linter errors
2 years ago
Raal Goff
d2483f3a70
Merge branch 'master' into crl-support
...
# Conflicts:
# authority/config/config.go
2 years ago
Raal Goff
b89f210469
remove fail-email test and add ok-empty-email test
2 years ago
Mariano Cano
a2749ca8ed
Merge branch 'master' into device-attestation
2 years ago
Raal Goff
7a03c43fe2
allow missing Email claim in OIDC tokens, use subject when its missing
2 years ago
Mariano Cano
1938b1bb34
Merge branch 'master' into herman/fix-template-validation
2 years ago
Mariano Cano
1d1e024b84
Upgrade to go.step.sm/crypto v0.18.0
2 years ago
Mariano Cano
f1c63bc38d
Fix challenge mapping
2 years ago
Mariano Cano
df96b126dc
Add AuthorizeChallenge unit tests
2 years ago
Mariano Cano
bca311b05e
Add acme property to enable challenges
...
Fixes #1027
2 years ago
Herman Slatman
6b7b989988
Add provisioner template validation
...
Fixes #1012
2 years ago
Mariano Cano
693dc39481
Merge branch 'master' into device-attestation
2 years ago
Mariano Cano
b1e9d5ee86
Revert "Run on plaintext HTTP to support Cloud Run"
...
This reverts commit 09b9673a60
.
2 years ago
Mariano Cano
23b8f45b37
Address gosec warnings
...
Most if not all false positives
2 years ago
Mariano Cano
0c7467ceb2
Allow to automatically configure and linked RA
2 years ago
Mariano Cano
5e0be92273
Allow option to skip the validation of config
2 years ago
Mariano Cano
b62f4d1000
Add lgtm comments on some security warnings
2 years ago
Mariano Cano
a5439c43cd
Remove ciphersuites without Lucky13 countermeasures
...
SHA-256 variants of the CBC ciphersuites don't implement any Lucky13
countermeasures. See http://www.isg.rhul.ac.uk/tls/Lucky13.html and
https://www.imperialviolet.org/2013/02/04/luckythirteen.html .
2 years ago
Mariano Cano
8bd0174251
Rename field to IsCAServerCert
2 years ago
Mariano Cano
5df1694250
Add endpoint id for the RA certificate
...
In a linked RA mode, send an endpoint id to group the server
certificates.
2 years ago
Mariano Cano
eb091aec54
Simplify field names for ProvisionerInfo
2 years ago
Mariano Cano
21427d5d65
Replace instead of prepend provisioner extension
...
With non standard SANs this will generate the SAN and provisioner
extension in the same order.
2 years ago
Mariano Cano
369b8f81c3
Use go.step.sm/crypto/kms
...
Fixes #975
2 years ago
Mariano Cano
e02a190fa7
Merge branch 'master' into device-attestation
2 years ago
Max
3e2729e391
Merge pull request #989 from smallstep/max/disable-ssh-hosts
...
Add attribute to disable SSH Hosts list API
2 years ago
max furman
99c9155467
disableSSHHostsListAPI -> disableGetSSHHosts
2 years ago
Mariano Cano
64744562c6
Send RA provisioner to linkedca.
2 years ago
Mariano Cano
6b5d3dca95
Add provisioner name to RA info
2 years ago
Mariano Cano
a1f54921d2
Rename internal field
2 years ago
Mariano Cano
f9df8ac05f
Remove unused interface
2 years ago
Mariano Cano
9408d0f24b
Send RA provisioner information to the CA
2 years ago
max furman
fb7f57a8df
Add attribute to disable SSH Hosts list API
2 years ago
Raal Goff
60671b07d7
Merge branch 'master' into crl-support
...
# Conflicts:
# api/api.go
# authority/config/config.go
# cas/softcas/softcas.go
# db/db.go
2 years ago
Brandon Weeks
09b9673a60
Run on plaintext HTTP to support Cloud Run
2 years ago
Shulhan
fe04f93d7f
all: reformat all go files with the next gofmt (Go 1.19)
...
There are some changes that manually edited, for example using '-' as
default list and grouping imports.
2 years ago
Mariano Cano
9c049eec5a
Add revoke ssh unit test
2 years ago
Mariano Cano
ce9a23a0f7
Fix SSH certificate revocation
2 years ago
Mariano Cano
911cec21da
Merge pull request #943 from smallstep/ssh-renew-provisioner
...
Add provisioner to SSH renewals
2 years ago
Mariano Cano
94f5b92513
Use proper context in authority package
2 years ago
Mariano Cano
1be74eca62
Merge branch 'master' into ssh-renew-provisioner
2 years ago
Mariano Cano
26dd97e718
Merge branch 'master' into context-authority
2 years ago
Mariano Cano
6b3a8f22f3
Add provisioner to SSH renewals
...
This commit allows to report the provisioner to the linkedca when
a SSH certificate is renewed.
2 years ago
Mariano Cano
3c4d0412ef
Merge pull request #941 from smallstep/ssh-provisioner
...
Report SSH provisioner
2 years ago
Max
f8148071fb
Merge pull request #915 from smallstep/max/removing-beta
...
exposing authority configuration for provisioner cli commands
2 years ago
max furman
5443aa073a
gofmt -s
2 years ago
Max
586e4fd3b5
Update authority/options.go
...
Co-authored-by: Mariano Cano <mariano@smallstep.com>
2 years ago
Mariano Cano
dd985ce154
Clarify errors when sending renewed certificates
2 years ago
Mariano Cano
a627f21440
Fix AuthorizeSSHSign tests with extra SignOption
2 years ago
Mariano Cano
e7d7eb1a94
Add provisioner as a signOption for SSH
2 years ago
Mariano Cano
293586079a
Store provisioner with SignSSH
...
This change also allows to store the old certificate on renewal on
linkedca or if the db interface supports it.
2 years ago
Mariano Cano
c8d7ad7ab9
Fix store certificates methods with new interface
2 years ago
Mariano Cano
de99c3cac0
Report provisioner and parent on linkedca
2 years ago
Herman Slatman
479eda7339
Improve error message when client renews with expired certificate
...
When a client provides an expired certificate and `AllowAfterExpiry`
is not enabled, the client would get a rather generic error with
instructions to view the CA logs. Viewing the CA logs can be done
when running `step-ca`, but they can't be accessed easily in the
hosted solution.
This commit returns a slightly more informational message to the
client in this specific situation.
2 years ago
max furman
bfb406bf70
Fixes for PR review
2 years ago
Mariano Cano
898ca41268
Merge branch 'master' into context-authority
2 years ago
Herman Slatman
c695b23e24
Fix check for admin not belonging to policy
2 years ago
max furman
25b8d196d8
Couple changes in response to PR
...
- add skipInit option to skip authority initialization
- check admin API status when removing provisioners - no need to check
admins when not using Admin API
2 years ago
Mariano Cano
8942422973
Add GetID() and add authority to initial context
2 years ago
Mariano Cano
1e03bbb1af
Change types in the ACMEAdminResponder
2 years ago
Mariano Cano
f639bfc53b
Use contexts on the new PolicyAdminResponder
2 years ago
Mariano Cano
d461918eb0
Merge branch 'master' into context-authority
2 years ago
Herman Slatman
0f4ffa504a
Fix linting issues
2 years ago
Herman Slatman
7104299119
Add full policy validation in API
2 years ago
Herman Slatman
105211392c
Don't rely on linkedca model stability in API response bodies
2 years ago
Herman Slatman
5e9bce508d
Unexport GetPolicy()
2 years ago
Herman Slatman
60d8b22d89
Change context retrievers to MustTFromContext
2 years ago
Mariano Cano
43ddcf2efe
Do not use deprecated AuthorizeSign
2 years ago
Mariano Cano
9147356d8a
Fix linter errors
3 years ago
Mariano Cano
a8a4261980
Fix authority/admin/api tests
3 years ago
Herman Slatman
77893ea55c
Change authority policy to use dbPolicy model
3 years ago
max furman
4cb74e7d8b
fix linter warnings
3 years ago
Herman Slatman
d82e51b748
Update AllowWildcardNames configuration name
3 years ago
Herman Slatman
2b7f6931f3
Change Subject Common Name verification
...
Subject Common Names can now also be configured to be allowed or
denied, similar to SANs. When a Subject Common Name is not explicitly
allowed or denied, its type will be determined and its value will be
validated according to the constraints for that type of name (i.e. URI).
3 years ago
Mariano Cano
00f181dec3
Use contexts in admin api handlers
3 years ago
Mariano Cano
623c296555
Create context methods from admin database
3 years ago
Mariano Cano
48e2fabeb8
Add authority.MustFromContext
3 years ago
Mariano Cano
9628fa3562
Add methods to store and retrieve an authority from the context.
3 years ago
Herman Slatman
bddd08d4b0
Remove "proto:" prefix from bad proto JSON messages
3 years ago
Herman Slatman
6e1f8dd7ab
Refactor policy engines into container
3 years ago
Herman Slatman
2a7620641f
Fix more PR comments
3 years ago
Herman Slatman
76112c2da1
Improve error creation and testing for core policy engine
3 years ago
max furman
b91affdd34
exposing authority configuration for provisioner cli commands
3 years ago
Herman Slatman
20f5d12b99
Improve test rigour for reloadPolicyEngines
3 years ago
Herman Slatman
6264e8495c
Improve policy error handling code coverage
3 years ago
Herman Slatman
3fa96ebf13
Improve policy errors returned to client
3 years ago
Herman Slatman
c40a4d2694
Contain policy engines inside provisioner Controller
3 years ago
Herman Slatman
ef110a94df
Change pointer booleans to regular boolean configuration
3 years ago
Herman Slatman
e9f5a1eb98
Improve policy bad request handling
3 years ago
Herman Slatman
b72430f4ea
Block all APIs when using linked deployment mode
3 years ago
Herman Slatman
fb81407d6f
Fix ACME policy comments
3 years ago
Herman Slatman
a2cfbe3d54
Fix (part of) PR comments
3 years ago
Herman Slatman
3eecc4f7bb
Improve test coverage for reloadPolicyEngines
3 years ago
Herman Slatman
72bbe53376
Add additional policy options
3 years ago
Herman Slatman
9a21208f22
Add deduplication of policy configuration values
3 years ago
Herman Slatman
f2f9cb899e
Add conditional defaults to policy protobuf request bodies
3 years ago
Herman Slatman
647538e9e8
Merge branch 'herman/allow-deny' into herman/allow-deny-options
3 years ago
Herman Slatman
ad2de16299
Merge branch 'master' into herman/allow-deny
3 years ago
Herman Slatman
7f9034d22a
Add additional policy options
3 years ago
Mariano Cano
fe9c3cf753
Merge branch 'master' into ahmet2mir-feat/vault
3 years ago
Herman Slatman
def9438ad6
Improve handling of bad JSON protobuf bodies
3 years ago
Herman Slatman
2ca5c0170f
Fix flaky test behavior for protobuf messages
3 years ago
Herman Slatman
abcad679ff
Merge branch 'master' into herman/allow-deny
3 years ago
Herman Slatman
8d15a027a7
Fix if-else linting issue
3 years ago
Mariano Cano
c066694c0c
Allow renew token issuer to be the provisioner name.
...
For consistency with AuthorizeAdminToken, AuthorizeRenewToken will
allow the issuer to be either the fixed string 'step-ca-client/1.0'
or the provisioner name.
3 years ago
Herman Slatman
99702d3648
Fix case of no authority policy existing
3 years ago
Herman Slatman
d6be9450be
Merge branch 'master' into herman/allow-deny
3 years ago
Herman Slatman
30d5d89a13
Improve test coverage for Policy Admin API
3 years ago
Mariano Cano
d3b6bc3c75
Merge branch 'master' into fix/adminra
3 years ago
Mariano Cano
ad5aedfa60
Fix backward compatibility in AuthorizeAdminToken
...
This commit validates both new and old issuers.
3 years ago
Mariano Cano
5f714f2485
Fix tests for AuthorizeRenewToken
3 years ago
Mariano Cano
674dc3c844
Rename unreleased claim to allowRenewalAfterExpiry for consistency.
3 years ago
Mariano Cano
4e4d4e882f
Use a fixed string for renewal token issuer.
3 years ago
Mariano Cano
0a5dc237df
Fix typo in comment.
3 years ago
Mariano Cano
00cd0f5f21
Apply suggestions from code review
...
Co-authored-by: Herman Slatman <hslatman@users.noreply.github.com>
3 years ago
Mariano Cano
ea5f7f2acc
Fix SANs for step-ca certificate
...
Co-authored-by: Herman Slatman <hslatman@users.noreply.github.com>
3 years ago
Mariano Cano
37b521ec6c
Merge branch 'master' into feat/vault
3 years ago
Mariano Cano
c8c59d68f5
Allow mTLS renewals if the provisioner extension does not exists.
...
This fixes a backward compatibility issue with with the new
LoadProvisionerByCertificate.
3 years ago
Herman Slatman
256fe113f7
Improve tests for ACME account policy
3 years ago