TL;DR
| |
| |
To reach ACTIVE three things must hold at once: the domain’s A/AAAA points to the load balancer IP (and nothing else), the certificate is attached to a target proxy with its forwarding rule, and no CAA in the zone forbids Google’s CAs. Then, up to 60 minutes.
Why
Google issues managed certificates through Google Trust Services (pki.goog) or Let’s Encrypt, and picks one or the other on each issuance or renewal. To validate the domain it runs an HTTP check against the IP the name resolves to, so until DNS points at the load balancer there is nothing to validate. And like any CA, it honors CAA records: if your zone says only digicert.com may issue (a typical corporate policy), Google cannot.
The statuses tell the story:
domainStatus | Cause | What to do |
|---|---|---|
PROVISIONING | In progress | Wait; past 60 minutes, check the items below |
FAILED_NOT_VISIBLE | The name does not resolve to the load balancer IP, or the certificate is not attached to a target proxy | Fix A/AAAA, attach the certificate, wait for propagation |
FAILED_CAA_CHECKING | Google could not read the CAA records (unresponsive DNS, broken DNSSEC) | Fix the zone |
FAILED_CAA_FORBIDDEN | There is a CAA and it includes neither pki.goog nor letsencrypt.org | Add both records |
FAILED_RATE_LIMITED | Too many issuance attempts | Wait; do not recreate the certificate in a loop |
The right CAA
With no CAA record at all, any CA may issue and Google works. If you have CAA (or your organization requires it), add both CAs:
| |
Listing only one forces Google to always use that one; the documentation advises against it because a renewal may come out through the other. CAA records inherit downwards: a CAA on example.com covers www.example.com if the subdomain has none of its own.
| |
Certificate Manager: issue before switching DNS
With classic certificates (compute ssl-certificates) the domain must already point at the load balancer, which during a migration means a few minutes of broken HTTPS. Certificate Manager solves that with DNS authorization: you publish a validation CNAME and Google issues the certificate while traffic still flows to the old site.
| |
Once the certificate is ACTIVE, you flip the A/AAAA and the cutover is zero. CAA applies the same way.
Traps
- Cloudflare or another proxy in front of the load balancer: the A record points at the proxy, not at Google, and validation fails with
FAILED_NOT_VISIBLE. Grey cloud during issuance, or Certificate Manager with DNS authorization. - A managed certificate attached to nothing never gets issued. Creating it and waiting does nothing; attach it to the target proxy first.
- Changing the domain list creates a new certificate: attach the new one, wait for
ACTIVE, and only then remove the old one from the proxy, or you get a gap. - Wildcards only with Certificate Manager and DNS authorization; classic managed certificates do not support them.
- Badly signed DNSSEC breaks CAA lookups:
FAILED_CAA_CHECKINGeven when you have no CAA at all.
Reference: Google-managed SSL certificates and Certificate Manager in the Google Cloud documentation.