Skip to content

Add tutorial for AWS Certificate Manager ACME endpoints - #2360

Draft
wallrj wants to merge 1 commit into
cert-manager:masterfrom
wallrj:aws-acm-acme-docs
Draft

wallrj wants to merge 1 commit into
cert-manager:masterfrom
wallrj:aws-acm-acme-docs

Conversation

@wallrj

@wallrj wallrj commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Preview:

AWS Certificate Manager (ACM) now offers a managed ACME server which issues publicly trusted certificates to workloads outside the AWS managed services. AWS names cert-manager as a supported client. This PR adds a tutorial showing how to use it.

Why a separate page?

The server behaves differently from Let's Encrypt in three ways that affect cert-manager configuration:

  • Domains are approved in advance by an AWS administrator. The ACME server returns authorizations that are already valid, so cert-manager skips Challenge creation (see buildPartialRequiredChallenges). The Issuer needs no solvers.
  • Every account must use External Account Binding, and each EAB is bound to an IAM role.
  • Certificates are valid for 45 days and issuance can take up to two minutes. cert-manager handles both without extra configuration.

Not yet verified

I have not run this against a live ACM ACME endpoint. The steps come from the AWS documentation and from reading the cert-manager Order controller. The page says so in a warning at the top. Two things in particular need checking before this is merged:

  • Whether the MacKey returned by get-acme-external-account-binding-credentials can be stored in the Secret as-is, or needs the base64 URL re-encoding described in the EAB docs.
  • Whether the ACME server returns processing with Retry-After during the two minute issuance window, as the tutorial assumes, rather than holding the finalize request open past cert-manager's 90 second HTTP timeout.

I will remove the draft status once someone has run it end to end.

[Claude Fable 5.1]

AWS Certificate Manager can now run a managed ACME server which issues
publicly trusted certificates to clusters outside the AWS managed
services. It uses External Account Binding and pre-approved domain
validation instead of live HTTP-01 or DNS-01 challenges, so it needs a
different Issuer configuration from Let's Encrypt.

Add a tutorial covering the AWS setup, the Issuer and Certificate
configuration, and the failure modes specific to this server. The page
carries a warning that it has not yet been verified against a live
endpoint.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Richard Wall <richard@the-moon.net>
@cert-manager-prow cert-manager-prow Bot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. dco-signoff: yes Indicates that all commits in the pull request have the valid DCO sign-off message. labels Nov 5, 2026
@cert-manager-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign hawksight for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@cert-manager-prow cert-manager-prow Bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Nov 5, 2026
@netlify

netlify Bot commented Nov 5, 2026

Copy link
Copy Markdown

✅ Deploy Preview for cert-manager ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit 47c90b0
🔍 Latest deploy log https://app.netlify.com/projects/cert-manager/deploys/6aecc08f5c2474991c8991f8
😎 Deploy Preview https://deploy-preview-2360--cert-manager.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

--query 'EndpointUrl' --output text
```

The URL has the form `https://acm-acme-enroll.<region>.api.aws/<endpoint-id>/directory`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The slug here is not , it's a different uuid

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dco-signoff: yes Indicates that all commits in the pull request have the valid DCO sign-off message. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants