How To Fix Node Balance
How to Fix “SSL Certificate Verify Failed” on Linux / Arch
Quick fix for ETCMCv2 client connection issues on Linux systems when Python cannot find the correct trusted certificate bundle.
SSL: CERTIFICATE_VERIFY_FAILEDCommon message:
unable to get local issuer certificate
Table of Contents
1) What this error means 2) Why this happens 3) Quick fix 4) Step-by-step commands 5) How to verify the fix 6) Important notes1) What this error means
If the ETCMCv2 client fails with an SSL certificate verification error, it usually means the client can reach the server, but Python does not know which trusted certificate store it should use on that machine.
Typical symptoms:
- Client starts normally
- Connection to the ETCMCv2 service fails
- WebSocket or HTTPS requests return SSL verification errors
- Browser or curl may still work normally
2) Why this happens
On some Linux systems, especially custom or minimal setups, Python may not automatically pick the correct certificate bundle path for SSL verification.
That can lead to errors like:
SSL: CERTIFICATE_VERIFY_FAILED
certificate verify failed: unable to get local issuer certificate
This does not always mean:
- the ETCMCv2 server is down
- Cloudflare is broken
- the certificate is invalid
It often means:
- Python is using the wrong CA path
- the CA bundle path is not set
- the client environment needs the system certificate file explicitly defined
3) Quick fix
Set the system CA certificate bundle manually before starting the ETCMCv2 client:
export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
After that, launch the ETCMCv2 client from the same terminal session.
4) Step-by-step commands
Open a terminal in your ETCMCv2 client folder and run:
export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
./ETCMC_GETH
If your client uses another launcher or Python file, start that instead after exporting the variables.
Example:
cd /path/to/your/etcmcv2-client
export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
./ETCMC_GETH
If you start the client with Python directly, use:
export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
python your_client_file.py
5) How to verify the fix
After setting the variables and starting the client again:
- Launch the ETCMCv2 client from the same terminal
- Wait for the connection step
- Check whether the SSL error is gone
- Confirm the client connects to the WebSocket / API normally
If the fix works, the client should:
- connect without certificate verification errors
- fetch server data normally
- continue WebSocket communication successfully
6) Important notes
export commands only apply to the current terminal session.
If you open a new terminal later, you must run them again before starting the client.
If you want this to be permanent, you can add the same exports to your shell profile, for example:
~/.bashrc
~/.zshrc
Then add:
export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
Summary:
- The ETCMCv2 endpoint is reachable
- The certificate is valid
- The local Python environment was not using the correct CA bundle path
- Setting the certificate bundle manually fixes the issue