Configuring Proxies
  • 24 Dec 2024
  • 2 Minutes to read
  • Dark
    Light

Configuring Proxies

  • Dark
    Light

Article summary

Configure proxy support either server wide or per integration

Proxy configuration is required if your Polarity server needs proxy access to reach the Internet and you are running integrations that rely on Internet based services or resources. Proxy support can be enabled for integrations either on a server-wide basis or a per-integration basis. 

In general, integrations that will be connecting to internal resources do not need to have a proxy configured. Integrations that will be accessing Internet based APIs will need to have a proxy configured. If you are seeing an ECONNRESET error when using your integration, this is most commonly due to a missing or misconfigured proxy configuration for the integration.

Global Proxy

A global proxy will pass all integration traffic through the configured proxy. The proxy can be set via the HTTP_PROXY and HTTPS_PROXY environment variables. Specific domains or IPs can be set to ignore the proxy configuration via the NO_PROXY environment variable.

To set the required environment variables manually, begin by opening the /app/.env file for editing.

Add HTTP_PROXY and HTTPS_PROXY variables to the file. Ensure that the USERNAME:PASSWORD and proxy SERVER:PORT are replaced with your own proxy settings. If the proxy is unauthenticated then you do not need to provide the USERNAME:PASSWORD@ portion of the proxy configuration string (i.e., http://PROXYSERVER:PROXYPORT is all that would be required).

Note
We’ve seen the most success with only specifying the HTTP_PROXY environment variable due to SSL certificate trust issues. If you set the proxy environment variables and still see ECONNRESET errors, try only specifying the HTTP_PROXY environment variable.

# We've seen cases where HTTPS_PROXY does not work. If you see a ECONNRESET
# then try just specifying the HTTP_PROXY environment variable. 
HTTP_PROXY=http://USERNAME:PASSWORD@PROXYSERVER:PROXYPORT
HTTPS_PROXY=https://USERNAME:PASSWORD@PROXYSERVER:PROXYPORT

# Any domains that match the pattern (* is a wildcard) will not use the
# proxy setting. You cannot wildcard IP addresses but you can specify
# specific IPs. If multiple domains or IP addreses are specified you should
# comma delimit them with no spaces 
NO_PROXY=polarity_platform

NOTE
The NO_PROXY variable must include polarity_platform in addition to any desired additional domains or IP addresses.

After saving changes to the .env, you must restart the docker containers for the changes to take effect.

cd /app && ./down.sh && ./up.sh

Integration Specific Proxies

To set the proxy on each individual integration and not system-wide, please follow the below instructions: 

Integration specific proxies are now easily configurable via the Polarity UI on the integration's Advanced Settings page. 

Navigate to the integration you want to add the proxy to in the UI. Then click on Settings -> Advanced Settingsthen navigate to the Integration Proxy button in the middle of the page. Then state whether it is HTTP or HTTPs, add the host, port and a username or password if one is required. 

Testing the proxy using curl

If you need to confirm that you have the correct proxy information you can use the following curl command to test your proxy.

curl --verbose -x http://USERNAME:PASSWORD@PROXYSERVER:PROXYPORT https://cve.circl.lu/api/cve/CVE-2020-0796

If you run into any issues please don’t hesitate to contact us at support@polarity.io


Was this article helpful?

What's Next