VLearnVibium

Fix: Vibium Proxy and SSL Errors

Fix Vibium proxy and SSL errors — route Chrome through a proxy, ignore self-signed cert warnings, and unblock the first-run Chrome download.

By Pramod Dutta··4 min read·Verified with Vibium 26.2
▶ Animated overview · made with Remotion

To fix Vibium proxy and SSL errors, pass Chrome's --proxy-server and --ignore-certificate-errors flags through browser.launch(args=[...]), and set the HTTPS_PROXY environment variable so Vibium can download Chrome for Testing behind a firewall. Vibium is AI-native browser automation that drives real Chrome over WebDriver BiDi, so any SSL or proxy problem you hit is almost always Chrome rejecting a bad certificate or being unable to reach the network — not a Vibium bug. The two most common cases are a self-signed certificate on an internal or staging site, which you bypass with --ignore-certificate-errors, and a corporate proxy that all traffic must traverse, which you set with --proxy-server=host:port. A third case is the very first run: Vibium ships as a single Go binary and auto-downloads Chrome, and that HTTPS download must also be able to reach the internet through your proxy. Created by Jason Huggins, co-creator of Selenium and Appium, Vibium exposes these as standard Chrome launch arguments, so the fixes below are stable and well-documented.

Why does Vibium throw an SSL certificate error?

An SSL error in Vibium means Chrome refused to load the page because its TLS certificate failed validation. Common triggers are a self-signed certificate on a local or staging server, an expired certificate, or a hostname mismatch. Because Vibium uses the same certificate store as Chrome, you cannot "ignore" this from Python alone — you tell Chrome to relax the check at launch:

from vibium import browser_sync as browser
 
vibe = browser.launch(args=["--ignore-certificate-errors"])
vibe.go("https://staging.internal.example.com")
 
print(vibe.find("h1").text())
vibe.quit()

Only use --ignore-certificate-errors for sites you trust, such as your own staging or internal environments. Disabling certificate validation against the public web removes a real security protection, so never ship it in a script that visits untrusted URLs.

How do I route Vibium through a proxy?

Pass Chrome's --proxy-server flag through browser.launch() so every request the browser makes goes through your proxy host and port:

from vibium import browser_sync as browser
 
vibe = browser.launch(args=["--proxy-server=http://proxy.corp.example.com:8080"])
vibe.go("https://example.com")
 
print(vibe.find("h1").text())
vibe.quit()

For a SOCKS proxy, use --proxy-server=socks5://host:1080. If your proxy needs to skip certain hosts, add --proxy-bypass-list="*.internal,localhost,127.0.0.1". Because the proxy is configured at the browser level, every go(), find(), and screenshot call automatically rides through it — no per-request setup needed.

Why does the first run fail to download Chrome behind a firewall?

On first launch Vibium downloads Chrome for Testing over HTTPS, and behind a proxy or a TLS-inspecting firewall that download can stall or fail before any of your code runs. Set the standard proxy environment variables so the download itself can reach the internet:

export HTTPS_PROXY="http://proxy.corp.example.com:8080"
export HTTP_PROXY="http://proxy.corp.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.internal"
 
pip install vibium
vibium install   # pre-download Chrome for Testing through the proxy

If your firewall does TLS interception with a custom root CA, the download may still fail certificate validation. In that case, run vibium install on a machine with direct internet access and copy the cached browser to the locked-down host, or whitelist the Chrome for Testing download domain. Pre-downloading with vibium install also keeps the installation step out of your hot path so the first real run is fast.

How do I handle a proxy that requires authentication?

A proxy that needs a username and password is the trickiest case, because Chrome shows a native auth dialog that automation cannot type into directly. The most reliable workaround is to embed the credentials in the proxy URL or, better, run a local forwarding proxy (such as a small authenticated upstream) so Vibium points at an unauthenticated local port:

from vibium import browser_sync as browser
 
# Point Vibium at a local unauthenticated forwarder that adds proxy auth upstream.
vibe = browser.launch(args=["--proxy-server=http://127.0.0.1:3128"])
vibe.go("https://example.com")
vibe.quit()

This keeps credentials out of your script's launch arguments and avoids the un-automatable native dialog. For anything beyond this, check the official docs for the current recommended approach.

Tips for proxy and SSL reliability

  • Scope --ignore-certificate-errors to trusted hosts only — never use it against the open web.
  • Set HTTPS_PROXY before the first run so the Chrome download succeeds behind a firewall.
  • Pre-download with vibium install on a connected machine when TLS interception blocks the fetch.
  • Add a --proxy-bypass-list for localhost and internal hosts so local tests skip the proxy.

For the exact, current set of supported launch flags and any options you are unsure about, see the official docs at vibium.com and github.com/VibiumDev/vibium.

Next steps

Frequently asked questions

Why does Vibium fail with an SSL or certificate error?

Vibium drives real Chrome, so an SSL error usually means the target site has an invalid, expired, or self-signed certificate that Chrome rejects. Launch Chrome with the --ignore-certificate-errors flag through Vibium's launch arguments to bypass the warning for trusted internal or staging sites only.

How do I make Vibium use a corporate proxy?

Pass Chrome's --proxy-server flag through browser.launch() so the browser routes all traffic through your proxy host and port. Because Vibium downloads Chrome for Testing on first run, also set HTTPS_PROXY in your environment so that initial download succeeds behind the firewall.

Why does the first Vibium run hang or fail to download Chrome?

On first run Vibium fetches Chrome for Testing over HTTPS. Behind a proxy or TLS-inspecting firewall that download can stall or fail. Set HTTPS_PROXY and HTTP_PROXY environment variables before running, or pre-download with vibium install on a machine that has direct internet access.

Vibium is created by Jason Huggins. This is an independent tutorial — see the official Vibium site and GitHub repo for canonical docs.

Related guides