flyctl certificates use the Machines API with custom certificate uploads and domain ownership verification
Introduced 2026-02-12 · score 0.95
HOW TO USE IT
When managing an app certificate, use `fly certs` commands. Import a custom PEM certificate and key with `import`; use `setup` for DNS instructions and `check` after adding the ownership record.
fly certs import <hostname> -a <app> --fullchain <path/to/fullchain.pem> --private-key <path/to/private-key.pem>fly certs setup <hostname> -a <app>fly certs check <hostname> -a <app>WHY THIS HELPS
Manage certificates for an application, including uploading a custom certificate or verifying domain ownership.
REQUIREMENTS AND LIMITATIONS
- Version: v0.4.11
- <hostname> (required): Hostname for the certificate.
- -a, --app <app>: Application name; the command requires an app name, which may come from app configuration instead.
- --fullchain <path> (required): Path to the certificate chain file in PEM format.
- --private-key <path> (required): Path to the private key file in PEM format.
- Prerequisite: The certificate import command requires an authenticated Fly session and an app name.
- Prerequisite: Provide the certificate chain and private key in PEM format. Domain ownership must be verified through DNS before the imported certificate becomes active.
- Certificates are primarily serviced through the Machines API rather than GraphQL.
- The DNS entry can verify domain ownership in certain circumstances.
FIRST-PARTY EVIDENCE
- https://github.com/superfly/flyctl/releases/tag/v0.4.11
- https://github.com/superfly/flyctl/pull/4739
- https://github.com/superfly/flyctl/blob/v0.4.11/internal/command/certificates/root.go
Check the installed version and the source before using it. Entry JSON