Why My Blog Was Down For Weeks (And The Netlify DNS Mistake You Should Avoid)
How to fix SniCertificate::CertificateValidationError: Unable to verify challenge for *
If you’ve visited my site over the last few weeks, you might have noticed it was completely down, blocked by a scary browser security warning.
I finally figured out why, and I am writing this post to save you from making the exact same infrastructure mistake I did.
The Setup: Squarespace and Netlify
I buy my domains through Squarespace (originally Google Domains), but I host my code on Netlify. This is a very common setup.
To understand what broke, you have to understand how a DNS (Domain Name System) works. Think of a DNS as the internet's phonebook. Humans remember names (like carolinescholles.com), but computers only understand numbers (IP addresses like 75.2.60.5).
Because my domain is registered with Squarespace, they are the official keeper of my phonebook. Netlify provided the "phone number" (the IP address where my code lives).
Normally, you just add an entry in your Squarespace phonebook that says: "Send traffic for my domain to Netlify's number," and everything works perfectly.
The Mistake
While setting up my project in the Netlify dashboard, I might have clicked the "Set up Netlify DNS" option. By clicking that button, I accidentally created a "split-brain" DNS situation. Netlify automatically generated a second, ghost phonebook on their servers. The internet at large was still reading the official Squarespace phonebook. But Netlify now thought it was in charge.
Enter Let's Encrypt (The Endless Loop)
For your website to be secure (that little padlock in the URL bar), a service called Let's Encrypt has to verify your domain and issue an SSL certificate.
When Let's Encrypt tried to verify my site, Netlify confidently stepped in and pointed it to its own blank, ghost phonebook instead of the real Squarespace one. Because Let's Encrypt couldn't find the right verification records in the empty phonebook, it failed.
Netlify aggressively retried the verification in the background, failing over and over again, until Let's Encrypt completely blocked my domain for hitting their rate-limit. My site's SSL certificate failed to renew, and the blog was taken offline for weeks.
The Fix
If your domain is hosted on an external platform (like Squarespace, Namecheap, or GoDaddy), do not use Netlify DNS unless you intend to completely transfer your Name Servers.
To bring my site back online, I went into the Netlify Domains tab and navigated to the "Danger Zone" to Delete the DNS zone.
By deleting the ghost zone, I forced Netlify to fall back to "External DNS" mode. It immediately stopped trying to read its own fake phonebook, looked at Squarespace instead, and successfully provisioned my SSL certificate instantly.
We are officially back online! Hopefully, this saves you a few hours (or weeks!) of debugging.
References
What does the 'SniCertificate::CertificateValidationError' error mean?
This error occurs when Let’s Encrypt cannot complete the 'challenge' to verify you own the domain. It is typically caused by a DNS misconfiguration where the verification records are missing or being looked for in the wrong place.
What is a 'split-brain' DNS situation in Netlify?
It happens when you enable 'Netlify DNS' without transferring your domain's Nameservers. This creates a 'ghost' DNS zone on Netlify that the platform prioritizes for SSL checks, even though the rest of the internet is still using your official registrar's records.
Why can this mistake take a website offline for weeks?
If Netlify repeatedly fails to verify the domain using its 'ghost' records, it can hit Let’s Encrypt’s rate limits (specifically the 'failed validation' limit of 5 failures per hour). This can lead to an extended block on issuing new security certificates.
How do you fix a Netlify SSL verification failure for an external domain?
Navigate to the 'Domains' tab in Netlify, go to the 'Danger Zone,' and delete the DNS zone for that domain. This forces Netlify to fall back to 'External DNS' mode and look at your actual registrar (like Squarespace or GoDaddy) for verification.
- → Serving Markdown version of pages to AI: Is it worth it?
- → Building a Multi-Agent System to Find My Next Neighborhood Abroad
- → Notion Blog with AI Translation
- → A new approach to Information Architecture in the age of AI?
- → Help Google Find Your Pages
- → Observability: How I Monitor My Strava Activities