Commit Graph

1227 Commits (master)

Author SHA1 Message Date
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 2 years ago
Mariano Cano a8a4261980 Fix authority/admin/api tests 2 years ago
Herman Slatman 77893ea55c
Change authority policy to use dbPolicy model 2 years ago
max furman 4cb74e7d8b fix linter warnings 2 years ago
Herman Slatman d82e51b748
Update AllowWildcardNames configuration name 2 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).
2 years ago
Mariano Cano 00f181dec3 Use contexts in admin api handlers 2 years ago
Mariano Cano 623c296555 Create context methods from admin database 2 years ago
Mariano Cano 48e2fabeb8 Add authority.MustFromContext 2 years ago
Mariano Cano 9628fa3562 Add methods to store and retrieve an authority from the context. 2 years ago
Herman Slatman bddd08d4b0
Remove "proto:" prefix from bad proto JSON messages 2 years ago
Herman Slatman 6e1f8dd7ab
Refactor policy engines into container 2 years ago
Herman Slatman 2a7620641f
Fix more PR comments 2 years ago
Herman Slatman 76112c2da1
Improve error creation and testing for core policy engine 2 years ago
max furman b91affdd34 exposing authority configuration for provisioner cli commands 2 years ago
Herman Slatman 20f5d12b99
Improve test rigour for reloadPolicyEngines 2 years ago
Herman Slatman 6264e8495c
Improve policy error handling code coverage 2 years ago
Herman Slatman 3fa96ebf13
Improve policy errors returned to client 2 years ago
Herman Slatman c40a4d2694
Contain policy engines inside provisioner Controller 2 years ago
Herman Slatman ef110a94df
Change pointer booleans to regular boolean configuration 2 years ago
Herman Slatman e9f5a1eb98
Improve policy bad request handling 2 years ago
Herman Slatman b72430f4ea
Block all APIs when using linked deployment mode 2 years ago
Herman Slatman fb81407d6f
Fix ACME policy comments 2 years ago
Herman Slatman a2cfbe3d54
Fix (part of) PR comments 2 years ago
Herman Slatman 3eecc4f7bb
Improve test coverage for reloadPolicyEngines 2 years ago
Herman Slatman 72bbe53376
Add additional policy options 2 years ago
Herman Slatman 9a21208f22
Add deduplication of policy configuration values 2 years ago
Herman Slatman f2f9cb899e
Add conditional defaults to policy protobuf request bodies 2 years ago
Herman Slatman 647538e9e8
Merge branch 'herman/allow-deny' into herman/allow-deny-options 2 years ago
Herman Slatman ad2de16299
Merge branch 'master' into herman/allow-deny 2 years ago
Herman Slatman 7f9034d22a
Add additional policy options 2 years ago
Mariano Cano fe9c3cf753
Merge branch 'master' into ahmet2mir-feat/vault 2 years ago
Herman Slatman def9438ad6
Improve handling of bad JSON protobuf bodies 2 years ago
Herman Slatman 2ca5c0170f
Fix flaky test behavior for protobuf messages 2 years ago
Herman Slatman abcad679ff
Merge branch 'master' into herman/allow-deny 2 years ago
Herman Slatman 8d15a027a7
Fix if-else linting issue 2 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.
2 years ago
Herman Slatman 99702d3648
Fix case of no authority policy existing 2 years ago
Herman Slatman d6be9450be
Merge branch 'master' into herman/allow-deny 2 years ago
Herman Slatman 30d5d89a13
Improve test coverage for Policy Admin API 2 years ago
Mariano Cano d3b6bc3c75 Merge branch 'master' into fix/adminra 2 years ago
Mariano Cano ad5aedfa60 Fix backward compatibility in AuthorizeAdminToken
This commit validates both new and old issuers.
2 years ago
Mariano Cano 5f714f2485 Fix tests for AuthorizeRenewToken 2 years ago
Mariano Cano 674dc3c844 Rename unreleased claim to allowRenewalAfterExpiry for consistency. 2 years ago
Mariano Cano 4e4d4e882f Use a fixed string for renewal token issuer. 2 years ago
Mariano Cano 0a5dc237df Fix typo in comment. 2 years ago
Mariano Cano 00cd0f5f21
Apply suggestions from code review
Co-authored-by: Herman Slatman <hslatman@users.noreply.github.com>
2 years ago
Mariano Cano ea5f7f2acc
Fix SANs for step-ca certificate
Co-authored-by: Herman Slatman <hslatman@users.noreply.github.com>
2 years ago
Mariano Cano 37b521ec6c
Merge branch 'master' into feat/vault 2 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.
2 years ago
Herman Slatman 256fe113f7
Improve tests for ACME account policy 2 years ago
Panagiotis Siatras f2cf9cf828
authority/status: removed the package (#892) 2 years ago
Mariano Cano af8fcf5b01 Use always LoadProvisionerByCertificate on authority package 2 years ago
Mariano Cano 1d1e095447 Add tests for LoadProvisionerByCertificate. 2 years ago
Herman Slatman 0bb15e16f9
Fix missing ACME provisioner option 2 years ago
Herman Slatman 9797b3350e
Merge branch 'master' into herman/allow-deny 2 years ago
Mariano Cano dfdc9c06ed Fix linter error importShadow 2 years ago
Mariano Cano 8abd568f03 Merge branch 'master' into fix/adminra 2 years ago
Mariano Cano b7e11da480 Merge branch 'master' into feat/linkedra 2 years ago
Mariano Cano c55b27a2fc Refactor admin token to use with RAs. 2 years ago
Herman Slatman 034b7943fe
Merge branch 'master' into herman/allow-deny 2 years ago
Herman Slatman 7df52dbb76
Add ACME EAB policy 2 years ago
Mariano Cano db337debcd Load provisioner from the database instead of the extension. 2 years ago
Mariano Cano df8ffb35af Remove unnecessary database in provisioner config. 2 years ago
Raal Goff 49c41636cc implemented some requested changes 2 years ago