|
44 | 44 |
|
45 | 45 | **step ca provisioner add** <name> **--type**=ACME |
46 | 46 | [**--force-cn**] [**--require-eab**] [**--challenge**=<challenge>] |
| 47 | +[**--acme-proxy-url**=<url>] [**--acme-disable-proxy**] [**--acme-dns-resolver**=<host:port>] |
47 | 48 | [**--attestation-format**=<format>] [**--attestation-roots**=<file>] |
48 | 49 | [**--admin-cert**=<file>] [**--admin-key**=<file>] |
49 | 50 | [**--admin-subject**=<subject>] [**--admin-provisioner**=<name>] [**--admin-password-file**=<file>] |
@@ -145,12 +146,15 @@ SCEP |
145 | 146 | // Nebula provisioner flags |
146 | 147 | nebulaRootFlag, |
147 | 148 |
|
148 | | - // ACME provisioner flags |
149 | | - requireEABFlag, // ACME |
150 | | - forceCNFlag, // ACME + SCEP |
151 | | - challengeFlag, // ACME + SCEP |
152 | | - attestationFormatFlag, // ACME |
153 | | - attestationRootsFlag, // ACME |
| 149 | + // ACME provisioner flags |
| 150 | + requireEABFlag, // ACME |
| 151 | + forceCNFlag, // ACME + SCEP |
| 152 | + challengeFlag, // ACME + SCEP |
| 153 | + acmeProxyURLFlag, // ACME networking |
| 154 | + acmeDisableProxyFlag, // ACME networking |
| 155 | + acmeDNSResolverFlag, // ACME networking |
| 156 | + attestationFormatFlag, // ACME |
| 157 | + attestationRootsFlag, // ACME |
154 | 158 |
|
155 | 159 | // SCEP provisioner flags |
156 | 160 | scepCapabilitiesFlag, |
@@ -335,19 +339,26 @@ func addAction(ctx *cli.Context) (err error) { |
335 | 339 | return errs.InvalidFlagValue(ctx, "type", ctx.String("type"), "JWK, ACME, OIDC, SSHPOP, K8SSA, NEBULA, SCEP, AWS, GCP, AZURE") |
336 | 340 | } |
337 | 341 |
|
338 | | - p := &linkedca.Provisioner{ |
339 | | - Name: args.Get(0), |
340 | | - Type: linkedca.Provisioner_Type(typ), |
341 | | - } |
342 | | - |
343 | | - // Validate challenge flag on scep and acme |
344 | | - if err := validateChallengeFlag(ctx, p.Type); err != nil { |
345 | | - return err |
346 | | - } |
347 | | - // Validate attestation format flag on acme |
348 | | - if err := validateAttestationFormatFlag(ctx, p.Type); err != nil { |
349 | | - return err |
350 | | - } |
| 342 | + p := &linkedca.Provisioner{ |
| 343 | + Name: args.Get(0), |
| 344 | + Type: linkedca.Provisioner_Type(typ), |
| 345 | + } |
| 346 | + |
| 347 | + // Validate challenge flag on scep and acme |
| 348 | + if err := validateChallengeFlag(ctx, p.Type); err != nil { |
| 349 | + return err |
| 350 | + } |
| 351 | + // Validate attestation format flag on acme |
| 352 | + if err := validateAttestationFormatFlag(ctx, p.Type); err != nil { |
| 353 | + return err |
| 354 | + } |
| 355 | + |
| 356 | + // Informative note: networking flags for ACME require server + linkedca support |
| 357 | + if p.Type == linkedca.Provisioner_ACME { |
| 358 | + if ctx.IsSet("acme-proxy-url") || ctx.IsSet("acme-disable-proxy") || ctx.IsSet("acme-dns-resolver") { |
| 359 | + ui.PrintSelected("Notice", "ACME networking flags provided (proxy/DNS). Server support depends on linkedca fields.\nIf your CA version does not yet include these fields, the settings will be ignored.") |
| 360 | + } |
| 361 | + } |
351 | 362 |
|
352 | 363 | // Read x509 template if passed |
353 | 364 | p.X509Template = &linkedca.Template{} |
|
0 commit comments