Skip to content

Commit 84d340d

Browse files
committed
Merge branch 'master' into herman/fix-nebula-curve-param
2 parents c3c4287 + ff1a0d2 commit 84d340d

File tree

186 files changed

+13766
-2894
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

186 files changed

+13766
-2894
lines changed

.github/workflows/actionlint.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: Lint GitHub Actions workflows
2+
on:
3+
push:
4+
workflow_call:
5+
6+
concurrency:
7+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
8+
cancel-in-progress: true
9+
10+
permissions:
11+
contents: write
12+
pull-requests: write
13+
14+
jobs:
15+
actionlint:
16+
uses: smallstep/workflows/.github/workflows/actionlint.yml@main
17+
secrets: inherit

.github/workflows/dependabot-auto-merge.yml

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,6 @@ permissions:
66
pull-requests: write
77

88
jobs:
9-
dependabot:
10-
runs-on: ubuntu-latest
11-
if: ${{ github.actor == 'dependabot[bot]' }}
12-
steps:
13-
- name: Dependabot metadata
14-
id: metadata
15-
uses: dependabot/[email protected]
16-
with:
17-
github-token: "${{ secrets.GITHUB_TOKEN }}"
18-
- name: Enable auto-merge for Dependabot PRs
19-
run: gh pr merge --auto --merge "$PR_URL"
20-
env:
21-
PR_URL: ${{github.event.pull_request.html_url}}
22-
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
9+
dependabot-auto-merge:
10+
uses: smallstep/workflows/.github/workflows/dependabot-auto-merge.yml@main
11+
secrets: inherit

.github/workflows/release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ jobs:
4545
echo "DOCKER_TAGS_HSM=${{ env.DOCKER_TAGS_HSM }},${{ env.DOCKER_IMAGE }}:hsm" >> "${GITHUB_ENV}"
4646
- name: Create Release
4747
id: create_release
48-
uses: actions/create-release@v1
48+
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8
4949
env:
5050
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5151
with:
52-
tag_name: ${{ github.ref }}
53-
release_name: Release ${{ github.ref }}
52+
tag_name: ${{ github.ref_name }}
53+
name: Release ${{ github.ref_name }}
5454
draft: false
5555
prerelease: ${{ steps.is_prerelease.outputs.IS_PRERELEASE }}
5656

.goreleaser.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# This is an example .goreleaser.yml file with some sane defaults.
2-
# Make sure to check the documentation at http://goreleaser.com
1+
# Documentation: https://goreleaser.com/customization/
32
project_name: step-ca
3+
version: 2
44

55
before:
66
hooks:
@@ -98,7 +98,7 @@ signs:
9898
- cmd: cosign
9999
signature: "${artifact}.sig"
100100
certificate: "${artifact}.pem"
101-
args: ["sign-blob", "--oidc-issuer=https://token.actions.githubusercontent.com", "--output-certificate=${certificate}", "--output-signature=${signature}", "${artifact}"]
101+
args: ["sign-blob", "--oidc-issuer=https://token.actions.githubusercontent.com", "--output-certificate=${certificate}", "--output-signature=${signature}", "${artifact}", "--yes"]
102102
artifacts: all
103103

104104
snapshot:
@@ -180,7 +180,7 @@ release:
180180
181181
Those were the changes on {{ .Tag }}!
182182
183-
Come join us on [Discord](https://discord.gg/X2RKGwEbV9) to ask questions, chat about PKI, or get a sneak peak at the freshest PKI memes.
183+
Come join us on [Discord](https://discord.gg/X2RKGwEbV9) to ask questions, chat about PKI, or get a sneak peek at the freshest PKI memes.
184184
185185
# You can disable this pipe in order to not upload any artifacts.
186186
# Defaults to false.
@@ -268,7 +268,7 @@ winget:
268268
# Release notes URL.
269269
#
270270
# Templates: allowed
271-
release_notes_url: "https://github.com/smallstep/certificates/releases/tag/{{.Version}}"
271+
release_notes_url: "https://github.com/smallstep/certificates/releases/tag/{{ .Tag }}"
272272

273273
# Create the PR - for testing
274274
skip_upload: auto
@@ -283,7 +283,7 @@ winget:
283283
repository:
284284
owner: smallstep
285285
name: winget-pkgs
286-
branch: step
286+
branch: "step-ca-{{.Version}}"
287287

288288
# Optionally a token can be provided, if it differs from the token
289289
# provided to GoReleaser

CHANGELOG.md

Lines changed: 89 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,94 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
2525

2626
---
2727

28+
## [0.27.2] - 2024-07-18
29+
30+
### Added
31+
32+
- `--console` option to default step-ssh config (smallstep/certificates#1931)
33+
34+
35+
## [0.27.1] - 2024-07-12
36+
37+
### Changed
38+
39+
- Enable use of strict FQDN with a flag (smallstep/certificates#1926)
40+
- This reverses a change in 0.27.0 that required the use of strict FQDNs (smallstep/certificate#1910)
41+
42+
43+
## [0.27.0] - 2024-07-11
44+
45+
### Added
46+
47+
- Support for validity windows in templates (smallstep/certificates#1903)
48+
- Create identity certificate with host URI when using any provisioner (smallstep/certificates#1922)
49+
50+
### Changed
51+
52+
- Do strict DNS lookup on ACME (smallstep/certificates#1910)
53+
54+
### Fixed
55+
56+
- Handle bad attestation object in deviceAttest01 validation (smallstep/certificates#1913)
57+
58+
59+
## [0.26.2] - 2024-06-13
60+
61+
### Added
62+
63+
- Add provisionerID to ACME accounts (smallstep/certificates#1830)
64+
- Enable verifying ACME provisioner using provisionerID if available (smallstep/certificates#1844)
65+
- Add methods to Authority to get intermediate certificates (smallstep/certificates#1848)
66+
- Add GetX509Signer method (smallstep/certificates#1850)
67+
68+
### Changed
69+
70+
- Make ISErrNotFound more flexible (smallstep/certificates#1819)
71+
- Log errors using slog.Logger (smallstep/certificates#1849)
72+
- Update hardcoded AWS certificates (smallstep/certificates#1881)
73+
74+
75+
## [0.26.1] - 2024-04-22
76+
77+
### Added
78+
79+
- Allow configuration of a custom SCEP key manager (smallstep/certificates#1797)
80+
81+
### Fixed
82+
83+
- id-scep-failInfoText OID (smallstep/certificates#1794)
84+
- CA startup with Vault RA configuration (smallstep/certificates#1803)
85+
86+
87+
## [0.26.0] - 2024-03-28
88+
89+
### Added
90+
91+
- [TPM KMS](https://github.com/smallstep/crypto/tree/master/kms/tpmkms) support for CA keys (smallstep/certificates#1772)
92+
- Propagation of HTTP request identifier using X-Request-Id header (smallstep/certificates#1743, smallstep/certificates#1542)
93+
- Expires header in CRL response (smallstep/certificates#1708)
94+
- Support for providing TLS configuration programmatically (smallstep/certificates#1685)
95+
- Support for providing external CAS implementation (smallstep/certificates#1684)
96+
- AWS `ca-west-1` identity document root certificate (smallstep/certificates#1715)
97+
- [COSE RS1](https://www.rfc-editor.org/rfc/rfc8812.html#section-2) as a supported algorithm with ACME `device-attest-01` challenge (smallstep/certificates#1663)
98+
99+
### Changed
100+
101+
- In an RA setup, let the CA decide the RA certificate lifetime (smallstep/certificates#1764)
102+
- Use Debian Bookworm in Docker containers (smallstep/certificates#1615)
103+
- Error message for CSR validation (smallstep/certificates#1665)
104+
- Updated dependencies
105+
106+
### Fixed
107+
108+
- Stop CA when any of the required servers fails to start (smallstep/certificates#1751). Before the fix, the CA would continue running and only log the server failure when stopped.
109+
- Configuration loading errors when not using context were not returned. Fixed in [cli-utils/109](https://github.com/smallstep/cli-utils/pull/109).
110+
- HTTP_PROXY and HTTPS_PROXY support for ACME validation client (smallstep/certificates#1658).
111+
112+
### Security
113+
114+
- Upgrade to using cosign v2 for signing artifacts
115+
28116
## [0.25.1] - 2023-11-28
29117

30118
### Added
@@ -36,7 +124,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
36124

37125
- Generation of first provisioner name on `step ca init` in (smallstep/certificates#1566)
38126
- Processing of SCEP Get PKIOperation requests in (smallstep/certificates#1570)
39-
- Support for signing identity certificate during SSH sign by skipping URI validation in (smallstep/certificates#1572)
127+
- Support for signing identity certificate during SSH sign by skipping URI validation in (smallstep/certificates#1572)
40128
- Dependency on `micromdm/scep` and `go.mozilla.org/pkcs7` to use Smallstep forks in (smallstep/certificates#1600)
41129
- Make the Common Name validator for JWK provisioners accept values from SANs too in (smallstep/certificates#1609)
42130

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ lint:
147147
# Install
148148
#########################################
149149

150-
INSTALL_PREFIX?=/usr/
150+
INSTALL_PREFIX?=/usr/local/
151151

152152
install: $(PREFIX)bin/$(BINNAME)
153153
$Q install -D $(PREFIX)bin/$(BINNAME) $(DESTDIR)$(INSTALL_PREFIX)bin/$(BINNAME)

README.md

Lines changed: 42 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,62 @@
1-
# Step Certificates
1+
# step-ca
22

3-
`step-ca` is an online certificate authority for secure, automated certificate management. It's the server counterpart to the [`step` CLI tool](https://github.com/smallstep/cli).
3+
[![GitHub release](https://img.shields.io/github/release/smallstep/certificates.svg)](https://github.com/smallstep/certificates/releases/latest)
4+
[![Go Report Card](https://goreportcard.com/badge/github.com/smallstep/certificates)](https://goreportcard.com/report/github.com/smallstep/certificates)
5+
[![Build Status](https://github.com/smallstep/certificates/actions/workflows/test.yml/badge.svg)](https://github.com/smallstep/certificates)
6+
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
7+
[![CLA assistant](https://cla-assistant.io/readme/badge/smallstep/certificates)](https://cla-assistant.io/smallstep/certificates)
48

5-
You can use it to:
6-
- Issue X.509 certificates for your internal infrastructure:
7-
- HTTPS certificates that [work in browsers](https://smallstep.com/blog/step-v0-8-6-valid-HTTPS-certificates-for-dev-pre-prod.html) ([RFC5280](https://tools.ietf.org/html/rfc5280) and [CA/Browser Forum](https://cabforum.org/baseline-requirements-documents/) compliance)
8-
- TLS certificates for VMs, containers, APIs, mobile clients, database connections, printers, wifi networks, toaster ovens...
9-
- Client certificates to [enable mutual TLS (mTLS)](https://smallstep.com/hello-mtls) in your infra. mTLS is an optional feature in TLS where both client and server authenticate each other. Why add the complexity of a VPN when you can safely use mTLS over the public internet?
9+
`step-ca` is an online certificate authority for secure, automated certificate management for DevOps.
10+
It's the server counterpart to the [`step` CLI tool](https://github.com/smallstep/cli) for working with certificates and keys.
11+
Both projects are maintained by [Smallstep Labs](https://smallstep.com).
12+
13+
You can use `step-ca` to:
14+
- Issue HTTPS server and client certificates that [work in browsers](https://smallstep.com/blog/step-v0-8-6-valid-HTTPS-certificates-for-dev-pre-prod.html) ([RFC5280](https://tools.ietf.org/html/rfc5280) and [CA/Browser Forum](https://cabforum.org/baseline-requirements-documents/) compliance)
15+
- Issue TLS certificates for DevOps: VMs, containers, APIs, database connections, Kubernetes pods...
1016
- Issue SSH certificates:
11-
- For people, in exchange for single sign-on ID tokens
17+
- For people, in exchange for single sign-on identity tokens
1218
- For hosts, in exchange for cloud instance identity documents
1319
- Easily automate certificate management:
14-
- It's an ACME v2 server
15-
- It has a JSON API
20+
- It's an [ACME server](https://smallstep.com/docs/step-ca/acme-basics/) that supports all [popular ACME challenge types](https://smallstep.com/docs/step-ca/acme-basics/#acme-challenge-types)
1621
- It comes with a [Go wrapper](./examples#user-content-basic-client-usage)
1722
- ... and there's a [command-line client](https://github.com/smallstep/cli) you can use in scripts!
1823

19-
Whatever your use case, `step-ca` is easy to use and hard to misuse, thanks to [safe, sane defaults](https://smallstep.com/docs/step-ca/certificate-authority-server-production#sane-cryptographic-defaults).
20-
2124
---
2225

23-
**Don't want to run your own CA?**
24-
To get up and running quickly, or as an alternative to running your own `step-ca` server, consider creating a [free hosted smallstep Certificate Manager authority](https://info.smallstep.com/certificate-manager-early-access-mvp/).
26+
### Comparison with Smallstep's commercial product
27+
28+
`step-ca` is optimized for a two-tier PKI serving common DevOps use cases.
29+
30+
As you design your PKI, if you need any of the following, [consider our commerical CA](http://smallstep.com):
31+
- Multiple certificate authorities
32+
- Active revocation (CRL, OSCP)
33+
- Turnkey high-volume, high availability CA
34+
- An API for seamless IaC management of your PKI
35+
- Integrated support for SCEP & NDES, for migrating from legacy Active Directory Certificate Services deployments
36+
- Device identity — cross-platform device inventory and attestation using Secure Enclave & TPM 2.0
37+
- Highly automated PKI — managed certificate renewal, monitoring, TPM-based attested enrollment
38+
- Seamless client deployments of EAP-TLS Wi-Fi, VPN, SSH, and browser certificates
39+
- Jamf, Intune, or other MDM for root distribution and client enrollment
40+
- Web Admin UI — history, issuance, and metrics
41+
- ACME External Account Binding (EAB)
42+
- Deep integration with an identity provider
43+
- Fine-grained, role-based access control
44+
- FIPS-compliant software
45+
- HSM-bound private keys
46+
47+
See our [full feature comparison](https://smallstep.com/step-ca-vs-smallstep-certificate-manager/) for more.
48+
49+
You can [start a free trial](https://smallstep.com/signup) or [set up a call with us](https://go.smallstep.com/request-demo) to learn more.
2550

2651
---
2752

2853
**Questions? Find us in [Discussions](https://github.com/smallstep/certificates/discussions) or [Join our Discord](https://u.step.sm/discord).**
2954

3055
[Website](https://smallstep.com/certificates) |
31-
[Documentation](https://smallstep.com/docs) |
56+
[Documentation](https://smallstep.com/docs/step-ca) |
3257
[Installation](https://smallstep.com/docs/step-ca/installation) |
33-
[Getting Started](https://smallstep.com/docs/step-ca/getting-started) |
3458
[Contributor's Guide](./CONTRIBUTING.md)
3559

36-
[![GitHub release](https://img.shields.io/github/release/smallstep/certificates.svg)](https://github.com/smallstep/certificates/releases/latest)
37-
[![Go Report Card](https://goreportcard.com/badge/github.com/smallstep/certificates)](https://goreportcard.com/report/github.com/smallstep/certificates)
38-
[![Build Status](https://github.com/smallstep/certificates/actions/workflows/test.yml/badge.svg)](https://github.com/smallstep/certificates)
39-
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
40-
[![CLA assistant](https://cla-assistant.io/readme/badge/smallstep/certificates)](https://cla-assistant.io/smallstep/certificates)
41-
42-
[![GitHub stars](https://img.shields.io/github/stars/smallstep/certificates.svg?style=social)](https://github.com/smallstep/certificates/stargazers)
43-
[![Twitter followers](https://img.shields.io/twitter/follow/smallsteplabs.svg?label=Follow&style=social)](https://twitter.com/intent/follow?screen_name=smallsteplabs)
44-
45-
![star us](https://github.com/smallstep/certificates/raw/master/docs/images/star.gif)
46-
4760
## Features
4861

4962
### 🦾 A fast, stable, flexible private CA
@@ -52,7 +65,6 @@ Setting up a *public key infrastructure* (PKI) is out of reach for many small te
5265

5366
- Choose key types (RSA, ECDSA, EdDSA) and lifetimes to suit your needs
5467
- [Short-lived certificates](https://smallstep.com/blog/passive-revocation.html) with automated enrollment, renewal, and passive revocation
55-
- Capable of high availability (HA) deployment using [root federation](https://smallstep.com/blog/step-v0.8.3-federation-root-rotation.html) and/or multiple intermediaries
5668
- Can operate as [an online intermediate CA for an existing root CA](https://smallstep.com/docs/tutorials/intermediate-ca-new-ca)
5769
- [Badger, BoltDB, Postgres, and MySQL database backends](https://smallstep.com/docs/step-ca/configuration#databases)
5870

@@ -127,5 +139,5 @@ and visiting http://localhost:8080.
127139

128140
## Feedback?
129141

130-
* Tell us what you like and don't like about managing your PKI - we're eager to help solve problems in this space.
131-
* Tell us about a feature you'd like to see! [Add a feature request Issue](https://github.com/smallstep/certificates/issues/new?assignees=&labels=enhancement%2C+needs+triage&template=enhancement.md&title=), [ask on Discussions](https://github.com/smallstep/certificates/discussions), or hit us up on [Twitter](https://twitter.com/smallsteplabs).
142+
* Tell us what you like and don't like about managing your PKI - we're eager to help solve problems in this space. [Join our Discord](https://u.step.sm/discord) or [GitHub Discussions](https://github.com/smallstep/certificates/discussions)
143+
* Tell us about a feature you'd like to see! [Request a Feature](https://github.com/smallstep/certificates/issues/new?assignees=&labels=enhancement%2C+needs+triage&template=enhancement.md&title=)

acme/account.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ type Account struct {
2121
OrdersURL string `json:"orders"`
2222
ExternalAccountBinding interface{} `json:"externalAccountBinding,omitempty"`
2323
LocationPrefix string `json:"-"`
24+
ProvisionerID string `json:"-"`
2425
ProvisionerName string `json:"-"`
2526
}
2627

0 commit comments

Comments
 (0)