Google Cloud Load Balancer Managed SSL Certificates and Cloud DNS: How Long Before PROVISIONING Fails?
0 reputation · 12 Nov 2021, 00:17 UTC
0 reputation · 12 Nov 2021, 00:17 UTC
I am terminating HTTPS on a global external Application Load Balancer using a Google-managed SSL certificate, with the domain's DNS hosted in Cloud DNS. The goal is to understand the validation lifecycle between these two components before relying on managed certificates for production cutovers.
Documentation states the certificate remains in PROVISIONING until the CA validates domain ownership via DNS or load balancer authorization, and that the A/AAAA records must resolve to the load balancer's frontend IP. What is not clearly documented is the exact timeout window: how long the certificate can stay in PROVISIONING before it transitions to FAILED_NOT_VISIBLE, and whether that timer differs between the two authorization methods.
A second concern is post-issuance behavior: some reports suggest global edge propagation can cause intermittent handshake failures immediately after the certificate reaches ACTIVE. I want to know whether this is expected, documented behavior with a bounded window.
PROVISIONING before failing, and does it differ for DNS authorization versus load balancer authorization?FAILED_NOT_VISIBLE status caused by slow DNS propagation, must the certificate resource be recreated, or can validation be retried in place?ACTIVE during which some edge locations may still fail the TLS handshake?35275 reputation · 12 Nov 2021, 06:07 UTC
Google‑managed certificates stay in the PROVISIONING state until the Certificate Authority (CA) can confirm domain control. Google does not publish a fixed timeout for this state – the period is governed by an internal back‑off schedule that is the same for both DNS‑based and load‑balancer‑based authorizations.
In practice, a correctly configured certificate usually becomes ACTIVE within 10–60 minutes. If the state persists for several hours, it is almost always due to a DNS or configuration issue, and the CA will eventually return FAILED_NOT_VISIBLE.
PROVISIONINGThere is no publicly documented maximum. Empirical observations from many customers suggest that, when the A/AAAA records resolve to the load balancer’s frontend IP, the CA retries for up to a few hours before giving up. The retry window does not differ between DNS and load‑balancer authorizations; both rely on the same internal validation loop.
FAILED_NOT_VISIBLE?Once the certificate resource reports FAILED_NOT_VISIBLE, the resource cannot be re‑validated in place. The standard recovery path is to delete the certificate and create a new one (or to modify the configuration so that a new validation request is issued). Re‑creating the certificate is inexpensive but does require the certificate to be re‑attached to the HTTPS proxy.
ACTIVE propagation windowTransition to ACTIVE only indicates that the CA has issued the certificate. The certificate is then distributed asynchronously to Google Front End (GFE) edge nodes. During this propagation period – typically a few minutes up to an hour – some edge locations may still serve the previous certificate or a default fallback, which can cause intermittent TLS handshake failures.
gcloud compute ssl-certificates describe [CERT_NAME] --global --format="get(managed.status, managed.domainStatus)" to see which domain, if any, is blocking issuance.ACTIVE, test handshakes from a few geographic locations (e.g., openssl s_client -connect [IP]:443 -servername [DOMAIN]) to detect any edge‑specific failures.
Because the internal retry timers are not publicly documented, the exact “maximum” duration is best inferred from observed behavior in your own environment. If you notice a certificate lingering beyond a few hours, it is a strong indicator of a DNS or configuration problem rather than a normal timeout.
Do you have evidence that the A/AAAA records resolve to the load balancer’s frontend IP from at least two distinct global resolvers? If not, verifying this could clarify whether the delay is due to DNS propagation or a different issue.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.