Connection Issues
Connection Timeout
Error: Connection timed out or ETIMEDOUT
Causes:
- Server is slow to respond
- Network connectivity issues
- Firewall blocking the connection
- Incorrect port number
Solutions:
-
Increase timeout setting:
JSON
{ "sslens.timeout": 30000 } - Check if you can access the domain in your browser
- Verify the port number (default is 443)
- Check if a proxy or VPN is interfering
Connection Refused
Error: ECONNREFUSED
Causes:
- No service running on the specified port
- Server is down
- Wrong port number
Solutions:
- Verify the server is running
- Check if the port is correct (try port 443 if unsure)
- For local servers, ensure they're started
DNS Resolution Failed
Error: ENOTFOUND or getaddrinfo ENOTFOUND
Causes:
- Domain name misspelled
- Domain doesn't exist
- DNS server issues
Solutions:
- Double-check the domain spelling
- Try using an IP address instead of hostname
- Check your DNS settings
- Try:
nslookup domain.comin terminal to verify DNS
Proxy/VPN Issues
If you're behind a corporate proxy or using a VPN:
Proxy Configuration
SSLens uses Node.js TLS connections which may not automatically respect system proxy settings. If you're behind a proxy, some connections may fail.
Workarounds:
- Temporarily disable the proxy/VPN if possible
- Add exceptions for the domains you need to inspect
- Use the domain's IP address directly
Certificate Issues
Self-Signed Certificate
Message: "Self-signed certificate" or SELF_SIGNED_CERT_IN_CHAIN
This is not an error - SSLens can still inspect self-signed certificates. You'll see a warning indicator, but all certificate details will be displayed.
Expired Certificate
Message: "Certificate has expired" or CERT_HAS_EXPIRED
SSLens can still inspect expired certificates. The certificate panel will show the expiration status with a red indicator (🔴).
Certificate Chain Incomplete
Message: "Unable to verify certificate chain" or missing intermediate certificates
Causes:
- Server not sending intermediate certificates
- Misconfigured SSL on the server
What you can do:
- SSLens will show whatever certificates are available
- The chain validation feature will report the issue
- For your own servers: ensure intermediate certificates are properly configured
Hostname Mismatch
Error: ERR_TLS_CERT_ALTNAME_INVALID
The hostname you're connecting to doesn't match any name in the certificate's Subject Alternative Names (SANs).
Solutions:
- Use the exact hostname that appears in the certificate
- Check the certificate's SANs field to see valid hostnames
Extension Issues
Extension Not Activating
If SSLens commands don't appear in the Command Palette:
- Reload VS Code:
Cmd+Shift+P→ "Developer: Reload Window" - Check if the extension is installed and enabled in Extensions view
- Check the VS Code version (SSLens requires 1.85.0+)
Sidebar Not Visible
If the SSLens icon (🛡️) doesn't appear in the Activity Bar:
- Right-click the Activity Bar and ensure "SSLens" is checked
- Reload VS Code
- Reinstall the extension
Panel Not Opening
If the certificate panel doesn't appear after fetching:
- Check the Output panel for errors (View → Output → Select "SSLens")
- Try fetching a known-working domain like
github.com - Reload VS Code
Settings Not Saving
If saved domains or settings are lost:
- Ensure you have write permissions to VS Code's user settings
- Check if Settings Sync is causing conflicts
- Try saving settings to workspace instead of user settings
SSL Pinning Issues
Generated Code Not Working
If the generated pinning code causes connection failures:
- Verify the hash is correct: Fetch the certificate again and compare hashes
- Check for certificate rotation: The server may have a new certificate
- Include backup pins: Always have at least one backup pin
- Pin the intermediate CA: More stable than pinning leaf certificates
App Locked Out After Certificate Change
If your app can't connect after a certificate change:
Prevention is Key
This is why backup pins are critical. Users must update the app to get new pins if all pinned certificates change.
Solutions:
- Release an app update with the new certificate pins
- Consider pinning to the intermediate CA instead (more stable)
- Implement a pin expiration strategy (Android Network Security Config)
Hash Format Wrong
Different platforms expect different hash formats:
| Platform | Expected Format |
|---|---|
| Android (OkHttp) | sha256/BASE64HASH |
| Android (Network Security Config) | BASE64HASH only |
| iOS | BASE64HASH |
| Flutter | BASE64HASH |
Frequently Asked Questions
Can SSLens inspect certificates behind authentication?
SSLens only performs the TLS handshake to retrieve certificates. It doesn't send HTTP requests or handle authentication. The certificate is obtained before any HTTP-level authentication occurs, so you can inspect certificates even for authenticated endpoints.
Does SSLens work with client certificates (mTLS)?
Currently, SSLens doesn't support providing client certificates for mutual TLS authentication. It works as a standard TLS client without client certificate authentication.
Can I inspect certificates from internal/private domains?
Yes, as long as your machine can resolve and connect to the domain. SSLens works with:
- Internal company domains
- Self-signed certificates
- Private CA-signed certificates
- Localhost with TLS
Why does the public key hash differ from online tools?
Different tools may calculate hashes differently:
- Some hash the entire certificate, others hash just the public key
- SPKI includes algorithm info, raw public key hash doesn't
- Some tools use different hash algorithms (SHA-1 vs SHA-256)
SSLens uses the standard SHA-256 hash of the public key, Base64 encoded, which is compatible with most pinning implementations.
Is my data sent anywhere?
No. SSLens operates entirely locally. It:
- Only connects directly to the domains you specify
- Stores all data locally in VS Code settings
- Never sends data to SSLens servers (there are none)
- Is fully open source for verification
Can I use SSLens offline?
SSLens requires network access to fetch certificates from remote domains. However, you can:
- Inspect local certificate files (.pem, .crt, .der) offline
- View previously fetched certificates from the sidebar
Get Help
Debug Information
When reporting issues, include:
- VS Code version (
Help → About) - SSLens version (Extensions panel)
- Operating system
- Error message (from Output panel: View → Output → SSLens)
- Domain you're trying to inspect (if not sensitive)
Report an Issue
If you've tried the solutions above and still have problems:
Report a Bug
Found a bug? Let us know on GitHub.
Open issue →Request Feature
Have an idea? We'd love to hear it.
Suggest feature →Community Support
SSLens is open source and community-driven. Check the GitHub Discussions for community help and feature discussions.