Chrome network error · -117 · Connection
ERR_BAD_SSL_CLIENT_AUTH_CERT
Chromium's description
The SSL handshake failed because of a bad or missing client certificate.
Chrome shows it as net::ERR_BAD_SSL_CLIENT_AUTH_CERT, error -117. puppeteer and Playwright report the same name when a page fails to load in Chromium.
Common causes
- A site that requires a client certificate, such as a company portal, a government site or a smart-card login, and none is installed.
- An expired or wrong client certificate.
- An antivirus that intercepts HTTPS and cannot pass client certificates on.
- A wrong system date.
How to fix ERR_BAD_SSL_CLIENT_AUTH_CERT
- Install the client certificate you were given, or insert the smart card.
- Check the system date and time.
- Turn off HTTPS scanning of the antivirus.
- Ask the site’s administrator which certificate it expects.
ERR_BAD_SSL_CLIENT_AUTH_CERT in the screenshot API
The renderer sends no client certificates, so pages that require mutual TLS cannot be captured: the API answers 502 with the message The target website could not be loaded (ERR_BAD_SSL_CLIENT_AUTH_CERT). (or a similar TLS error). Not billed.
Only the page's own load can fail a render. An image, script or frame of the page that fails with a network error does not: the page is captured as the browser shows it without that resource.
Check whether a website loads
Frequently asked questions
What does ERR_BAD_SSL_CLIENT_AUTH_CERT mean?
How do I fix ERR_BAD_SSL_CLIENT_AUTH_CERT?
Is a screenshot that fails with ERR_BAD_SSL_CLIENT_AUTH_CERT billed?
Other common errors
Screenshot API
Take screenshots from your code
screenshotbase renders any website in a real browser and returns the image: full page or viewport, any device size, retina, from 100+ countries, with cookie banners and ads hidden.
/v1/take documentation Screenshot API All documentation
300 free screenshots every month. No credit card required.
GET https://api.screenshotbase.com/v1/take?url=https://example.com&full_page=true
# Response: the image (PNG, JPG, WebP or GIF)
curl -G "https://api.screenshotbase.com/v1/take" \
--data-urlencode "url=https://example.com" \
-d viewport_width=1280 -d viewport_height=800 \
-d format=png \
-H "apikey: YOUR-API-KEY" \
-o screenshot.png