This documentation covers Convox V2, our ECS-based engine. V2 is fully supported and actively maintained. Looking for the Kubernetes-based V3 engine? See docs.convox.com.
certs dns
List the DNS records that the Rack's ACM certificates need for DNS validation, one row per record, with a live check of each one. Add these records at your DNS provider and leave them in place, because ACM checks them again at every renewal. See Certificate DNS Validation for the full migration.
The list covers certificates for your own domains that the Rack uses: certificates Convox created for Service domains, certificates convox certs generate requested with DNS validation, certificates on the Rack's load balancers, and certificates applied to Gen 1 Apps with convox ssl update. It includes certificates on email validation, certificates switching to DNS validation, and certificates already on DNS validation, so records that are already in place stay listed. Each record appears once, even when several certificates need it, and example.com and *.example.com share one record.
Records for convox.site certificates are not listed, because Convox publishes them. Imported certificates, failed certificates and certificates still waiting for email validation have no records.
Requires rack version 20261021234916 or newer, and CLI version 3.25.12 or newer, or 20261021234916 or newer. Against an older Rack the command returns ERROR: convox certs dns requires a rack on the latest release.
Syntax
$ convox certs dns
Flags
| Flag | Short | Description |
|---|---|---|
--rack |
-r |
Rack name |
--zone-file |
Print the records as zone-file lines |
Example Usage
$ convox certs dns
ZONE NAME TYPE VALUE CHECK CERTIFICATES
example.com _0123456789abcdef0123456789abcdef.example.com. CNAME _fedcba9876543210fedcba9876543210.abcdefghij.acm-validations.aws. ok acm-0a1b2c3d4e5f
example.org _1123456789abcdef0123456789abcdef.shop.example.org. CNAME _eedcba9876543210fedcba9876543210.bcdefghijk.acm-validations.aws. missing acm-1b2c3d4e5f6a
2 records: 1 ok, 1 missing
example.org is a Route 53 zone in this AWS account. To have the rack add its records: convox rack params set Route53CertificateValidation=Yes
When every record shows ok: convox certs migrate --wait
Columns
| Column | Content |
|---|---|
ZONE |
The DNS zone the record goes in: the closest parent of the record name that has its own NS records in public DNS. A delegated subdomain shows as its own zone |
NAME |
The record name, in full, with a trailing dot |
TYPE |
CNAME |
VALUE |
The record value |
CHECK |
The result of a live lookup of the record |
CERTIFICATES |
The certificates that use the record |
Check Values
| Value | Meaning |
|---|---|
ok |
The record answers with the expected value |
missing |
Nothing answers for the name, or the name has no CNAME record |
wrong |
A CNAME answers with a different value. A wildcard record on a parent name, such as *.example.com, often causes this |
unknown |
The lookup failed or did not finish in time. Run the command again |
The Rack asks the zone's authoritative nameservers in public DNS, so a record usually shows ok as soon as your DNS provider serves it, without waiting for resolver caches. When those nameservers answer, a record that only a private hosted zone or an internal DNS server answers stays missing, because ACM validates through public DNS. When the Rack cannot reach public DNS on port 53, when no nameserver answers, or once the command has run for about 25 seconds (as it can in a region with many ACM certificates), it checks the remaining records through the VPC's resolver instead. A record that only a private hosted zone or an internal DNS server answers can then show ok, and a record you just added can show missing until the resolver's cached answer expires. convox certs migrate always asks the nameservers when it can reach them.
Other Output
After the table, a summary counts the records by check value. These lines can follow it:
| Line | Meaning |
|---|---|
<zone> is a Route 53 zone in this AWS account. To have the rack add its records: convox rack params set Route53CertificateValidation=Yes |
The zone is a public hosted zone in the Rack's AWS account. See Route53CertificateValidation. Not printed once the parameter is Yes |
N certificates are still being prepared, run again in a few minutes |
The Rack has not read these certificates' records from ACM yet. It does this in the background every few minutes, and convox certs migrate does it at once |
<id>: <error> |
The records for that certificate could not be read. convox certs migrate tries again |
<id> uses email validation but is not used by this rack, so it leaves it alone |
An email-validated certificate in the Rack's region that this Rack does not use. The Rack does not switch it. Run the command against the Rack that uses it, or delete it if nothing does |
When every record shows ok: convox certs migrate --wait |
Printed while any record is not ok |
Zone File
--zone-file prints every record, including records that already show ok, as zone-file lines grouped by zone. Names and values are absolute, with a trailing dot, and every record has a TTL of 300 seconds. Lines about certificates that are still being prepared, or whose records could not be read, go to stderr, so redirecting the output captures only the records:
$ convox certs dns --zone-file > records.txt
$ cat records.txt
; zone example.com
_0123456789abcdef0123456789abcdef.example.com. 300 IN CNAME _fedcba9876543210fedcba9876543210.abcdefghij.acm-validations.aws.
; zone example.org
_1123456789abcdef0123456789abcdef.shop.example.org. 300 IN CNAME _eedcba9876543210fedcba9876543210.bcdefghijk.acm-validations.aws.
Import each ; zone block into the zone it names. Many DNS providers reject an import that contains a record the zone already has, so remove the lines for records that already show ok. See Adding the Records for provider-specific steps.